JSON står för JavaScript-objektnotation det är ett mycket litet viktat format för att lagra och transportera data. JSON-formatet är mycket lätt att förstå eftersom det har en självbeskrivande natur. JSON används främst för att överföra data mellan en server och en webbapplikation.
Informationen om en anställd skriven i JSON-formatet ser ut så här:
{ 'Employee': { 'name': 'Emma Watson', 'salary': 40000, 'married': false } }
Java-objekt är en instans av en klass eller en fristående komponent som har egenskaper och metoder för att göra en viss typ av data användbar. Java objekt har ett tillstånd, beteende och identitet.
Java-objekt för en anställd skrivs på följande sätt:
//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); } }
Många gånger behöver vi konvertera Java-objekt till JSON så att vi enkelt kan förstå dem. För att konvertera ett Java-objekt till ett JSON-objekt har vi följande två metoder eller sätt:
- Använder GSON-biblioteket
- Använder Jackson API
Låt oss förstå båda en efter en.
Använder GSON-biblioteket
De GSON biblioteket spelar en viktig roll för att konvertera ett Java-objekt till JSON. GSON-biblioteket konverterar inte bara Java-objekt till JSON utan använder det också för att konvertera JSON-strängen till dess motsvarande Java-objekt.
Det här är följande steg för att konvertera ett Java-objekt till JSON:
- Skapa ett Maven-projekt.
- Lägg till GSON-beroende xml fil.
- Skapa vanligt gammalt Java-objekt för att konvertera till JSON.
- Skapa en Java-klass för att konvertera Java-objektet till JSON.
Steg 1: Skapa ett Maven-projekt
I det första steget måste vi skapa ett maven-projekt med eclipse IDE. Att konvertera Java-objekt till JSON är ett avancerat Java-koncept, så vi rekommenderar att du använder en IDE som eclipse för att enkelt förstå programmen.
Steg 2: Lägg till GSON-beroende i pom.xml
I nästa steg måste vi lägga till följande GSON-beroende i filen pom.xml för att använda GSON-biblioteket.
Java anonym funktion
com.google.code.gson gson 2.8.6
Efter att ha lagt till beroendet ser filen pom.xml ut så här:
Steg 3: Skapa POJO för att konvertera till JSON
I nästa steg måste vi skapa en POJO , som vi vill konvertera till ett JSON-objekt. I vårt exempel skapar vi en klass MobilePhone med getter och sättare för märke, namn, bagge , och 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 + ']'; } }
Steg 4: Skapa en Java-klass för att konvertera Java-objektet till JSON
Vi måste skapa en ny Java-klass som använder GSON för att konvertera MobilePhone-objektet till JSON. I den här klassen kommer vi att skapa metoden getMobile(). Inuti metoden ställer vi in värdena till MobilePhone-klassens egenskaper och returnerar MobilePhone-objektet.
I huvudmetoden kommer vi att skapa ett objekt av klassen MobilePhone och lagra geMobile()-metodens returnerade värde. Efter det kommer vi att använda Gson().toJson() metod för att konvertera det objektet till ett JSON-objekt.
ConvertJSON.java
stäng av utvecklarläget
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)); } }
När vi kör filen ConvertJSON.java kommer vi att se JSON-objektet för MobilePhone-klassobjektet.
Använder Jacksons bibliotek
Jackson bibliotek är ett av de enklaste Java-baserade biblioteken. Jackson-biblioteket används för att serialisera Java-objektet till JSON och vice versa. De ObjectMapper klass av Jackson API tillhandahåller metoder för att konvertera Java-objektet till JSON-format eller -objekt. De ObjectMapper klass writeValueAsString() metoden tar JSON-objektet som en parameter och returnerar dess respektive JSON-sträng.
Det här är följande steg för att konvertera Java-objektet till ett JSON-objekt med Jackson API:
- Skapa ett Maven-projekt
- Lägg till Jackson-beroende i filen pom.xml.
- Skapa ett POJO-objekt.
- Skapa en ny klass för att konvertera Java-objekt till JSON-objekt.
Steg 1: Skapa ett Maven-projekt
I det första steget måste vi skapa ett maven-projekt med eclipse IDE. Precis som GSON stöds även Jackson API av Eclipse.
Steg 2: Lägg till Jackson-beroende i pom.xml
I nästa steg måste vi lägga till följande Jackson-beroende i vår pom.xml-fil för att använda Jackson-biblioteket.
com.fasterxml.jackson.core jackson-databind 2.12.1
Steg 3: Skapa POJO för att konvertera till JSON
I nästa steg behöver vi skapa en POJO, som vi vill konvertera till ett JSON-objekt. I det här exemplet skapar vi en klassprodukt med getter och sättare för egenskaperna som id, namn, och pris .
Product.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 + ']'; } }
Steg 4: Skapa en Java-klass för att konvertera Java-objektet till JSON
Precis som vårt tidigare exempel på GSON kommer vi också att skapa en ny Java-klass ObjectToJson . Inuti metoden har vi skapat metoden getObjectData() för att ställa in värdena till Product-objektet och returnera det objektet i klassen Product.
I metoden main() har vi skapat ett objekt av klassen Product och klassen ObjectMapper. Efter det kommer vi att använda writeValueAsString() metod för ObjectMapper-klassen för att dölja Java-objektet till ett JSON-objekt.
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; } }
När vi kör ObjectToJson.java fil kommer vi att se JSON-strängen för produktklassobjektet.
Båda metoderna används i olika scenarier. Båda är enkla, snabba och lätta att använda och förstå.
tar bort från arraylist