Deepak Kumar
Deepak Kumar

Reputation: 3751

Parse JSON record to extract key and value and put into Map in java

I have one column in my table which will store data in string format the sample data is

{"pre-date":{"enable":true,"days":"3","interval":"1","mail-template":"582"},"on-date":{"enabled":false},"post-date":{"enabled":false}}

and the string contains data like json data but when i will send this record for controller to view it should be in format

enable : true
days : 3
interval : 1

so that i can set values to respective form elements how to do this in java any help

Upvotes: 1

Views: 3693

Answers (2)

Programmer Bruce
Programmer Bruce

Reputation: 66943

Jackson provides the best support for simple conversion of any JSON object into a Java Map comprised of only Java SE components.

Following is an example using the JSON from the original question.

// {"pre-date":{"enable":true,"days":"3","interval":"1","mail-template":"582"},"on-date":{"enabled":false},"post-date":{"enabled":false}}
String json = "{\"pre-date\":{\"enable\":true,\"days\":\"3\",\"interval\":\"1\",\"mail-template\":\"582\"},\"on-date\":{\"enabled\":false},\"post-date\":{\"enabled\":false}}";

ObjectMapper mapper = new ObjectMapper();

// To put all of the JSON in a Map<String, Object>
Map<String, Object> map = mapper.readValue(json, Map.class);

// Accessing the three target data elements
Map<String, Object> preDateMap = (Map) map.get("pre-date");
System.out.println(preDateMap.get("enable"));
System.out.println(preDateMap.get("days"));
System.out.println(preDateMap.get("interval"));

Upvotes: 1

JB Nizet
JB Nizet

Reputation: 691785

Read the complete JSON string from the database, then parse it using a JSON parser, and extract the information you're interested into from the data structure/object returned from the parsing.

There are lots of JSON parsers available. Look at this page, which lists a number of them in the Java section (you have to scroll a little bit down).

Upvotes: 3

Related Questions