1. Quick Reference for conversion from Java to JSON or vice-versa..
we will show you how to use Jackson 2.x to convert Java object to / from JSON
writeValue(...)
ObjectMapper mapper = new ObjectMapper();
Staff obj = new Staff();
//Object to JSON in file
mapper.writeValue(new File("c:\\file.json"), obj);
//Object to JSON in String
String jsonInString = mapper.writeValueAsString(obj);
b. Convert JSON to Java object, readValue(...)
readValue(...)
ObjectMapper mapper = new ObjectMapper();
String jsonInString = "{'name' : 'santhosh'}";
//JSON from file to Object
Staff obj = mapper.readValue(new File("c:\\file.json"), Staff.class);
//JSON from URL to Object
Staff obj = mapper.readValue(new URL("http://test.com/api/staff.json"),
Staff.class);
//JSON from String to Object
Staff obj = mapper.readValue(jsonInString, Staff.class);
2.
Jackson 2 Dependency
pom.xml
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.6.3</version>
</dependency>
3. POJO (Plain Old Java Object)
Convert a
Staff
object into a JSON formatted string.
Jackson2Example.java
package com.santhosh.json; import java.io.File; import java.io.IOException; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import com.fasterxml.jackson.core.JsonGenerationException; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.ObjectMapper; public class Jackson2Example { public static void main(String[] args) { Jackson2Example obj = new Jackson2Example(); obj.run(); } private void run() { ObjectMapper mapper = new ObjectMapper(); Staff staff = createDummyObject(); try { // Convert object to JSON string and save into a file directly mapper.writeValue(new File("D:\\staff.json"), staff); // Convert object to JSON string String jsonInString = mapper.writeValueAsString(staff); System.out.println(jsonInString); // Convert object to JSON string and pretty print jsonInString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(staff); System.out.println(jsonInString); } catch (JsonGenerationException e) { e.printStackTrace(); } catch (JsonMappingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } private Staff createDummyObject() { Staff staff = new Staff(); staff.setName("mkyong"); staff.setAge(33); staff.setPosition("Developer"); staff.setSalary(new BigDecimal("7500")); List<String> skills = new ArrayList<>(); skills.add("java"); skills.add("python"); staff.setSkills(skills); return staff; } }
Output
//new json file is created in D:\\staff.json" {"name":"santhosh","age":33,"position":"Developer","salary":7500,"skills":["java","python"]} { "name" : "santhosh", "age" : 33, "position" : "Developer", "salary" : 7500, "skills" : [ "java", "python" ] }
5. JSON to Java Object
Read JSON string and convert it back to a Java object.
Jackson2Example.java
package com.santhosh.json;
import java.io.File;
import java.io.IOException;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import com.fasterxml.jackson.core.JsonGenerationException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
public class Jackson2Example {
public static void main(String[] args) {
Jackson2Example obj = new Jackson2Example();
obj.run();
}
private void run() {
ObjectMapper mapper = new ObjectMapper();
try {
// Convert JSON string from file to Object
Staff staff = mapper.readValue(new File("D:\\staff.json"), Staff.class);
System.out.println(staff);
// Convert JSON string to Object
String jsonInString = "{\"name\":\"santhosh\",\"salary\":7500,\"skills\":[\"java\",\"python\"]}";
Staff staff1 = mapper.readValue(jsonInString, Staff.class);
System.out.println(staff1);
//Pretty print
String prettyStaff1 = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(staff1);
System.out.println(prettyStaff1);
} catch (JsonGenerationException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Output
Staff [name=santhosh, age=33, position=Developer, salary=7500, skills=[java, python]] Staff [name=santhosh, age=0, position=null, salary=7500, skills=[java, python]] { "name" : "santhosh", "age" : 0, "position" : null, "salary" : 7500, "skills" : [ "java", "python" ] }
good
ReplyDelete