JSON означава JavaScript обектна нотация това е много малък претеглен формат за съхраняване и транспортиране на данни. Форматът JSON е много лесен за разбиране, защото има a самоописващ се природа. JSON се използва главно за предаване на данни между сървър и уеб приложение.
Данните за служител, написани във формат JSON, изглеждат така:
{ 'Employee': { 'name': 'Emma Watson', 'salary': 40000, 'married': false } }
Java обект е екземпляр на клас или самостоятелен компонент, имащ свойства и методи за правене на определен тип данни полезни. Java обектът има състояние, поведение и идентичност.
Java обектът на служител е написан по следния начин:
//Defining an Employee class class Employee{ //Defining properties String name; int salary; Boolean married; //creating main() method of teh Employee class public static void main(String args[]){ //Creating object of Employee class Employee emp =new Employee(); emp.name = 'Emma Watson'; emp.salary = 40000; emp.married = false; //Printing values of the object System.out.println(emp.name); System.out.println(emp.salary); System.out.println(emp.married); } }
Много пъти трябва да конвертираме Java обекти в JSON, за да можем лесно да ги разберем. За да конвертирате Java обект в JSON обект, имаме следните два метода или начин:
- Използване на GSON библиотека
- Използване на API на Jackson
Нека разберем и двамата един по един.
Използване на GSON библиотека
The GSON библиотеката играе важна роля при конвертирането на Java обект в JSON. GSON библиотеката не само преобразува Java обект в JSON, но също така го използва, за да преобразува JSON низа в неговия еквивалентен Java обект.
Това са следните стъпки за конвертиране на Java обект в JSON:
- Създайте проект на Maven.
- Добавяне на GSON зависимост xml файл.
- Създайте обикновен стар Java обект за конвертиране в JSON.
- Създайте Java клас, за да конвертирате Java обекта в JSON.
Стъпка 1: Създайте проект на Maven
В първата стъпка трябва да създадем maven проект с помощта на eclipse IDE. Преобразуването на Java обекти в JSON е усъвършенствана концепция на Java, така че ви препоръчваме да използвате IDE като eclipse, за да разберете лесно програмите.
Стъпка 2: Добавете GSON зависимост в pom.xml
В следващата стъпка трябва да добавим следната GSON зависимост във файла pom.xml, за да използваме GSON библиотеката.
анотации в пролетното зареждане
com.google.code.gson gson 2.8.6
След добавяне на зависимостта файлът pom.xml изглежда по следния начин:
Стъпка 3: Създайте POJO за конвертиране в JSON
оператор if else в java
В следващата стъпка трябва да създадем a POJO , който искаме да конвертираме в JSON обект. В нашия пример създаваме клас MobilePhone с getter и setters за марка, име, рам , и rom .
MobilePhone.java
package javaTpoint.JavaObjectToJSON; //Creating MobilePhone class public class MobilePhone { //Creating properties of the class private String brand; private String name; private int ram; private int rom; //Setter and Getters public String getBrand() { return brand; } public void setBrand(String brand) { this.brand = brand; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getRam() { return ram; } public void setRam(int ram) { this.ram = ram; } public int getRom() { return rom; } public void setRom(int rom) { this.rom = rom; } Overriding the toString() method @Override public String toString() { // TODO Auto-generated method stub return ''MobilePhone [MobileBrand '+ brand + ', MobileName = ' + name + ', RAM = ' + ram + ', ROM = ' + rom + ']'; } }
Стъпка 4: Създайте Java клас, за да конвертирате Java обекта в JSON
Трябва да създадем нов Java клас, който използва GSON за преобразуване на обекта MobilePhone в JSON. В този клас ще създадем метода getMobile(). Вътре в метода задаваме стойностите на свойствата на класа MobilePhone и връщаме обекта MobilePhone.
В основния метод ще създадем обект от класа MobilePhone и ще съхраним върнатата стойност на метода geMobile(). След това ще използваме Gson().toJson() метод за преобразуване на този обект в JSON обект.
Конвертиране на JSON.java
package JavaTpoint.JavaObjectToJSON; import com.google.gson.Gson; public class ConvertJSON { public static MobilePhone getMobile(MobilePhone mobile) { mobile.setBrand('SAMSUNG'); mobile.setName('J2 Core'); mobile.setRam(2); mobile.setRom(4); return mobile; } public static void main(String[] args) { // TODO Auto-generated method stub MobilePhone mobilePhone = new MobilePhone(); mobilePhone = getMobile(mobilePhone); System.out.println('The JSON representation of Object mobilePhone is '); System.out.println(new Gson().toJson(mobilePhone)); } }
Когато стартираме файла ConvertJSON.java, ще видим JSON обекта на обекта на класа MobilePhone.
Използване на библиотека Джаксън
Джаксън библиотека е една от най-простите библиотеки, базирани на Java. Библиотеката Jackson се използва за сериализиране на Java обекта в JSON и обратно. The ObjectMapper клас на API на Jackson предоставя методи за конвертиране на Java обекта във формат или обект JSON. The ObjectMapper клас writeValueAsString() взема JSON обекта като параметър и връща съответния JSON низ.
Това са следните стъпки за конвертиране на Java обекта в JSON обект с помощта на Jackson API:
- Създайте проект на Maven
- Добавете зависимостта Jackson към файла pom.xml.
- Създайте POJO обект.
- Създайте нов клас за конвертиране на Java обект в JSON обект.
Стъпка 1: Създайте проект на Maven
В първата стъпка трябва да създадем maven проект с помощта на eclipse IDE. Точно като GSON, Jackson API също се поддържа от Eclipse.
Стъпка 2: Добавете зависимостта Jackson в pom.xml
В следващата стъпка трябва да добавим следната зависимост на Jackson в нашия файл pom.xml, за да използваме библиотеката на Jackson.
com.fasterxml.jackson.core jackson-databind 2.12.1
Стъпка 3: Създайте POJO за конвертиране в JSON
В следващата стъпка трябва да създадем POJO, който искаме да конвертираме в JSON обект. В този пример създаваме клас Продукт, който има getter и setter за свойства като id, име, и цена .
Продукт.java
колко голям е екрана на монитора ми
package JavaTpoint.JavaObjectToJSON; //Creating Product class public class Product { //Creating properties of Product class private int id; private String name; private int price; //Getter and Setters public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getPrice() { return price; } public void setPrice(int price) { this.price = price; } @Override public String toString() { // TODO Auto-generated method stub return ''Product [ProductId '+ id + ', ProductName = ' + name + ', ProductPrice = ' + price + ']'; } }
Стъпка 4: Създайте Java клас, за да конвертирате Java обекта в JSON
Точно както предишния ни пример за GSON, ние също ще създадем нов Java клас ObjectToJson . Вътре в метода създадохме метода getObjectData(), за да зададем стойностите на обекта Product и да върнем този обект от класа Product.
В метода main() създадохме обект от класа Product и класа ObjectMapper. След това ще използваме writeValueAsString() метод на класа ObjectMapper за прикриване на Java обекта в JSON обект.
ObjectToJson.java
package JavaTpoint.JavaObjectToJSON; import java.io.IOException; import com.fasterxml.jackson.databind.ObjectMapper; public class ObjectToJson { public static void main(String[] a) { // Creating object of Product Product product = new Product(); // Inserting the data into the object product = getObjectData(product); // Creating Object of ObjectMapper define in Jackson API ObjectMapper Obj = new ObjectMapper(); try { // Converting the Java object into a JSON string String jsonStr = Obj.writeValueAsString(product); // Displaying Java object into a JSON string System.out.println(jsonStr); } catch (IOException e) { e.printStackTrace(); } } // Getting data that we want to insert into an object public static Product getObjectData(Product product) { // Insert the data product.setId(101); product.setName('Spark 131'); product.setPrice(10000); // Returning the product object return product; } }
Когато стартираме ObjectToJson.java файл, ще видим JSON низа на обекта на класа Product.
И двата метода се използват в различни сценарии. И двете са прости, бързи и лесни за използване и разбиране.