JSON significa Notació d'objectes JavaScript que és un format molt petit per emmagatzemar i transportar dades. El format JSON és molt fàcil d'entendre perquè té un autodescrivint-se naturalesa. JSON s'utilitza principalment per transmetre dades entre un servidor i una aplicació web.
Els detalls d'un empleat escrits en format JSON són els següents:
{ 'Employee': { 'name': 'Emma Watson', 'salary': 40000, 'married': false } }
Objecte Java és una instància d'una classe o d'un component autònom que té propietats i mètodes per fer útils un determinat tipus de dades. Java L'objecte té un estat, un comportament i una identitat.
L'objecte Java d'un empleat s'escriu de la manera següent:
//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); } }
Moltes vegades necessitem convertir objectes Java a JSON perquè els puguem entendre fàcilment. Per convertir un objecte Java en un objecte JSON, tenim els dos mètodes o maneres següents:
- Utilitzant la biblioteca GSON
- Utilitzant l'API de Jackson
Entenem-los tots dos un per un.
Utilitzant la biblioteca GSON
El GSON La biblioteca té un paper important a l'hora de convertir un objecte Java en JSON. La biblioteca GSON no només converteix l'objecte Java en JSON, sinó que també l'utilitza per convertir la cadena JSON en el seu objecte Java equivalent.
Aquests són els passos següents per convertir un objecte Java a JSON:
- Creeu un projecte Maven.
- Afegeix la dependència de GSON xml dossier.
- Creeu un objecte Java antic senzill per convertir-lo en JSON.
- Creeu una classe Java per convertir l'objecte Java a JSON.
Pas 1: creeu un projecte Maven
En el primer pas, hem de crear un projecte maven utilitzant l'IDE d'eclipse. Convertir objectes Java a JSON és un concepte Java avançat, per la qual cosa us recomanem que utilitzeu un IDE com Eclipse per entendre fàcilment els programes.
Pas 2: afegiu la dependència de GSON a pom.xml
En el següent pas, hem d'afegir la següent dependència GSON al fitxer pom.xml per utilitzar la biblioteca GSON.
desinstal·leu angular cli
com.google.code.gson gson 2.8.6
Després d'afegir la dependència, el fitxer pom.xml sembla el següent:
Pas 3: creeu POJO per convertir-lo en JSON
patrons de programari java
En el següent pas, hem de crear un POJO , que volem convertir en un objecte JSON . En el nostre exemple, creem una classe MobilePhone amb getter i setters per marca, nom, ram , i 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 + ']'; } }
Pas 4: creeu una classe Java per convertir l'objecte Java en JSON
Hem de crear una nova classe Java que utilitzi GSON per convertir l'objecte MobilePhone a JSON. En aquesta classe, crearem el mètode getMobile(). Dins del mètode, establim els valors a les propietats de la classe MobilePhone i tornem l'objecte MobilePhone.
En el mètode principal, crearem un objecte de la classe MobilePhone i emmagatzemarem el valor retornat del mètode geMobile(). Després d'això, farem servir el Gson().toJson() mètode per convertir aquest objecte en un objecte JSON.
ConvertJSON.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)); } }
Quan executem el fitxer ConvertJSON.java, veurem l'objecte JSON de l'objecte de classe MobilePhone.
Utilitzant la biblioteca Jackson
Jackson biblioteca és una de les biblioteques més senzilles basades en Java. La biblioteca Jackson s'utilitza per serialitzar l'objecte Java a JSON i viceversa. El ObjectMapper classe de l'API de Jackson proporciona mètodes per convertir l'objecte Java a format o objecte JSON. El ObjectMapper classe writeValueAsString() El mètode pren l'objecte JSON com a paràmetre i retorna la seva cadena JSON respectiva.
Aquests són els passos següents per convertir l'objecte Java en un objecte JSON mitjançant l'API Jackson:
- Creeu un projecte Maven
- Afegiu la dependència de Jackson al fitxer pom.xml.
- Creeu un objecte POJO.
- Creeu una classe nova per convertir l'objecte Java en objecte JSON.
Pas 1: creeu un projecte Maven
En el primer pas, hem de crear un projecte maven utilitzant l'IDE d'eclipse. Igual que GSON, l'API de Jackson també és compatible amb l'Eclipse.
Pas 2: afegiu la dependència de Jackson a pom.xml
En el següent pas, hem d'afegir la següent dependència de Jackson al nostre fitxer pom.xml per utilitzar la biblioteca de Jackson.
com.fasterxml.jackson.core jackson-databind 2.12.1
Pas 3: creeu POJO per convertir-lo en JSON
En el següent pas, hem de crear un POJO, que volem convertir en un objecte JSON. En aquest exemple, creem una classe Producte amb captadors i configuradors per a les propietats com id, nom, i preu .
Product.java
matriu java de cadena
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 + ']'; } }
Pas 4: creeu una classe Java per convertir l'objecte Java en JSON
Igual que el nostre exemple anterior de GSON, també crearem una nova classe Java ObjectToJson . Dins del mètode, hem creat el mètode getObjectData() per establir els valors a l'objecte Producte i retornar aquest objecte de la classe Producte.
En el mètode main(), hem creat un objecte de la classe Product i la classe ObjectMapper. Després d'això, farem servir el writeValueAsString() mètode de la classe ObjectMapper per convertir l'objecte Java en un objecte 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; } }
Quan executem el ObjectToJson.java fitxer, veurem la cadena JSON de l'objecte de classe Producte.
Tots dos mètodes s'utilitzen en diferents escenaris. Tots dos són senzills, ràpids i fàcils d'utilitzar i d'entendre.