One of the common uses cases while working with json is to convert it to a java object or convert java object to json. There is an open source library available in java which helps in processing json objects.
Add the Jackson dependency in pom.xml file
<repositories>
<repository>
<id>codehaus</id>
<url>http://repository.codehaus.org/org/codehaus</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.12</version>
</dependency>
</dependencies>
The Java class :
public static void main(String args[]) {
ObjectMapper mapper = new ObjectMapper();
Map m = new HashMap();
Map personMap = new HashMap<>();
Map personDetail = new HashMap();
personDetail.put("firstname", "Bob");
personDetail.put("lastname", "jackson");
personDetail.put("age", "12");
personDetail.put("city", "Berlin");
personMap.put("person", personDetail);
//convert Map to json string
try {
System.out.println(mapper.writeValueAsString(personMap));
} catch (IOException e) {
e.printStackTrace();
}
// convert json to Map
String json = "{\"person\":{\"age\":\"12\",\"lastname\":\"jackson\""
+ ",\"firstname\":\"Bob\",\"city\":\"Berlin\"}}"
try {
Map map = mapper.readValue(json, Map.class);
System.out.println("Map is " + map);
} catch (Exception e) {
e.printStackTrace();
}
}
Output is
Output: {“person”:{“age”:”12″,”lastname”:”jackson”,”firstname”:”Bob”,”city”:”Berlin”}}
Map is {person={age=12, lastname=jackson, firstname=Bob, city=Berlin}}
ObjectMapper mapper = new ObjectMapper();
Creating an object of ObjectMapper is a expensive operation and as best practice it should be created as a singleton object in a class.