how to create pojo class from json tree
Gson – How to convert Java object to / from JSON
In this tutorial, we will show you how to use Gson to convert Java object to / from JSON.
P.S All examples are tested by Gson 2.8.5
Note
JSON stands for JavaScript Object Notation, it is a lightweight data-interchange format. You can see many Java applications started to throw away XML format and start using JSON as a new data-interchange format. Java is all about object, often times, you need to convert an object into JSON format for data-interchange or vice verse.
1. Download Gson
pom.xml
<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.5</version> </dependency>
2. Gson Basic
toJson()
– Convert Java objects to JSON
Gson gson = new Gson(); Staff obj = new Staff(); // 1. Java object to JSON file gson.toJson(obj, new FileWriter("C:\\projects\\staff.json")); // 2. Java object to JSON string String jsonInString = gson.toJson(obj);
fromJson()
– Convert JSON to Java objects
Gson gson = new Gson(); // 1. JSON file to Java object Staff staff = gson.fromJson(new FileReader("C:\\projects\\staff.json"), Staff.class); // 2. JSON string to Java object String json = "{'name' : 'mkyong'}"; Staff staff = gson.fromJson(json, Staff.class); // 3. JSON file to JsonElement, later String JsonElement json = gson.fromJson(new FileReader("C:\\projects\\staff.json"), JsonElement.class); String result = gson.toJson(json);
3. Java Objects to JSON
3.1 A Java POJO, later uses this for conversion.
Staff.java
package com.mkyong; import java.math.BigDecimal; import java.util.Arrays; import java.util.List; import java.util.Map; public class Staff { private String name; private int age; private String[] position; // array private List<String> skills; // list private Map<String, BigDecimal> salary; // map //getters and setters }
3.2 In Gson, we can use gson.toJson()
to convert Java objects to JSON.
GsonExample1.java
package com.mkyong; import com.google.gson.Gson; import java.io.FileWriter; import java.io.IOException; import java.math.BigDecimal; import java.util.Arrays; import java.util.HashMap; import java.util.Map; public class GsonExample1 { public static void main(String[] args) { Gson gson = new Gson(); Staff staff = createStaffObject(); // Java objects to String // String json = gson.toJson(staff); // Java objects to File try (FileWriter writer = new FileWriter("C:\\projects\\staff.json")) { gson.toJson(staff, writer); } catch (IOException e) { e.printStackTrace(); } } private static Staff createStaffObject() { Staff staff = new Staff(); staff.setName("mkyong"); staff.setAge(35); staff.setPosition(new String[]{"Founder", "CTO", "Writer"}); Map<String, BigDecimal> salary = new HashMap() {{ put("2010", new BigDecimal(10000)); put("2012", new BigDecimal(12000)); put("2018", new BigDecimal(14000)); }}; staff.setSalary(salary); staff.setSkills(Arrays.asList("java", "python", "node", "kotlin")); return staff; } }
By default, Gson write JSON in compact mode.
C:\\projects\\staff.json
{"name":"mkyong","age":35,"position":["Founder","CTO","Writer"],"skills":["java","python","node","kotlin"],"salary":{"2018":14000,"2012":12000,"2010":10000}}
To enable the pretty print mode :
import com.google.gson.Gson; import com.google.gson.GsonBuilder; Gson gson = new GsonBuilder().setPrettyPrinting().create();
Output
C:\\projects\\staff.json
{ "name": "mkyong", "age": 35, "position": [ "Founder", "CTO", "Writer" ], "skills": [ "java", "python", "node", "kotlin" ], "salary": { "2018": 14000, "2012": 12000, "2010": 10000 } }
4. JSON to Java Objects
4.1 In Gson, we can use gson.fromJson
to convert JSON back to Java objects.
GsonExample2.java
package com.mkyong; import com.google.gson.Gson; import java.io.FileReader; import java.io.IOException; import java.io.Reader; public class GsonExample2 { public static void main(String[] args) { Gson gson = new Gson(); try (Reader reader = new FileReader("c:\\projects\\staff.json")) { // Convert JSON File to Java Object Staff staff = gson.fromJson(reader, Staff.class); // print staff object System.out.println(staff); } catch (IOException e) { e.printStackTrace(); } } }
Output
Staff{name='mkyong', age=35, position=[Founder, CTO, Writer], skills=[java, python, node, kotlin], salary={2018=14000, 2012=12000, 2010=10000}}
4.2 Convert to JsonElement
GsonExample3.java
package com.mkyong; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonElement; import java.io.FileReader; import java.io.IOException; import java.io.Reader; public class GsonExample3 { public static void main(String[] args) { // pretty print Gson gson = new GsonBuilder().setPrettyPrinting().create(); try (Reader reader = new FileReader("c:\\projects\\staff.json")) { // Convert JSON to JsonElement, and later to String JsonElement json = gson.fromJson(reader, JsonElement.class); String jsonInString = gson.toJson(json); System.out.println(jsonInString); } catch (IOException e) { e.printStackTrace(); } } }
Output
{ "name": "mkyong", "age": 35, "position": [ "Founder", "CTO", "Writer" ], "skills": [ "java", "python", "node", "kotlin" ], "salary": { "2018": 14000, "2012": 12000, "2010": 10000 } }
References
- Gson github link
- Gson – How to parse JSON
- JSON Official site
- Wikipedia – JSON
- Gson – How to enable pretty print JSON output
Comments
how to create pojo class from json tree
Source: https://mkyong.com/java/how-do-convert-java-object-to-from-json-format-gson-api/
Posted by: saucierdring1986.blogspot.com
0 Response to "how to create pojo class from json tree"
Post a Comment