Thursday, January 25, 2018

How to convert String to JSON object in Java

JSON stands for JavaScript Object notation. There are lot of open source libraries in java to convert JSON String to JSON Object. For Example, Jackson and GSON.

The following example shows converting JSON String to JSON Object using Jackson library:

import java.io.IOException;
import org.apache.log4j.Logger;
import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
public class JsonToJavaConverter {
private static Logger logger = Logger.getLogger(JsonToJavaConverter.class);
     
     
public static void main(String args[]) throws JsonParseException
                                                    , JsonMappingException, IOException{

JsonToJavaConverter converter = new JsonToJavaConverter();
             
                String json = "{\n" +
                "    \"name\": \"lucky\",\n" +
                "    \"subject\": \"java\",\n" +
                "    \"address\": \"hyderabad"\n}";
             
//converting JSON String to Java object
converter.fromJson(json);
}
     
public Object fromJson(String json) throws JsonParseException
                                                   , JsonMappingException, IOException{
User lucky = new ObjectMapper().readValue(json, User.class);
logger.info("Java Object created from JSON String ");
logger.info("JSON String : " + json);
logger.info("Java Object : " + lucky);
return lucky;
}
     
public static class User{
private String name;
private String Subject;
private String address;
public String getName() {return name;}
public void setName(String name) {
this.name = name;
}
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "User [name=" + name + ", subject=" + subject + ", address="
                                        + address + "]";
}
}
}



We will need to include Jackson library dependency in our classpath. To use Jackson with Maven:

As I said, You can either use Jackson or Gson to convert JSON String to Java object and in this Java tutorial we have used Jackson library for JSON to Java object conversion. If you are using Maven for dependency management than you can add following dependency in POM.xml :

<dependency>
      <groupId>org.codehaus.jackson</groupId>
      <artifactId>jackson-xc</artifactId>
      <version>1.9.11</version>
</dependency>

Now convert JSON String to JSON Object using Gson:

We will need to include Gson library dependency in our classpath. To use Gson with Maven:
<dependency>
  <groupId>com.google.code.gson</groupId>
  <artifactId>gson</artifactId>
  <version>2.8.2</version>
</dependency>

We can use the Gson class to convert a string to JsonObject using Gson library, for example:

@Test
 public void testStringToJsonObjectWithJsonElement() {
String json = "{\"id\":2,\"name\":\"java\",\"author\":\"lucky\"}";
Gson gson = new Gson();
JsonElement element = gson.fromJson(json, JsonElement.class);
JsonObject jsonObject = element.getAsJsonObject();
assertEquals(2, jsonObject.get("id").getAsInt());
assertEquals("Effective Java", jsonObject.get("name").getAsString());
assertEquals("Joshua Bloch", jsonObject.get("author").getAsString());
}


No comments:

Post a Comment

High Paying Jobs after Learning Python

Everyone knows Python is one of the most demand Programming Language. It is a computer programming language to build web applications and sc...