Learn how to convert JSON strings to JSON objects and arrays in Java using popular libraries like org.json and Gson. Includes step-by-step examples and code snippets.
Java is a versatile language that allows developers to manipulate data in various formats. One common data format is JSON (JavaScript Object Notation), which is widely used for data interchange between servers and web applications. In this blog, we’ll explore how to convert JSON strings into JSON objects in Java using popular libraries such as org.json (JSON-Java) and Gson.
What is JSON?
JSON is a lightweight data interchange format that’s easy for humans to read and write, and easy for machines to parse and generate. It is built on two structures:
- A collection of name/value pairs (often referred to as an object).
- An ordered list of values (often referred to as an array).
Here is an example of a JSON object and a JSON array:
JSON Object Example
{
"name": "John Doe",
"age": 30,
"isEmployee": true,
"address": {
"street": "123 Main St",
"city": "Anytown",
"zip": "12345"
},
"phoneNumbers": ["123-456-7890", "098-765-4321"]
}
JSON Array Example
[
{
"name": "John Doe",
"age": 30
},
{
"name": "Jane Smith",
"age": 25
}
]
Converting JSON Strings to JSON Objects in Java
To work with JSON in Java, you can use several libraries. Two of the most popular ones are org.json (also known as JSON-Java) and Gson by Google. Let’s look at how to use these libraries to convert JSON strings into JSON objects.
Using org.json Library
The org.json library provides classes for parsing and manipulating JSON data. Below is an example of how to use it:
Maven Dependency
First, include the org.json library in your project. If you are using Maven, add the following dependency to your pom.xml file:
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20210307</version>
</dependency>
Converting JSON String to JSONObject
Here is how you can convert a JSON string to a JSONObject:
import org.json.JSONObject;
public class JsonStringToObject {
public static void main(String[] args) {
String jsonString = "{\"name\":\"John Doe\",\"age\":30,\"isEmployee\":true,\"address\":{\"street\":\"123 Main St\",\"city\":\"Anytown\",\"zip\":\"12345\"},\"phoneNumbers\":[\"123-456-7890\",\"098-765-4321\"]}";
// Convert JSON string to JSONObject
JSONObject jsonObject = new JSONObject(jsonString);
// Accessing data
String name = jsonObject.getString("name");
int age = jsonObject.getInt("age");
boolean isEmployee = jsonObject.getBoolean("isEmployee");
JSONObject address = jsonObject.getJSONObject("address");
String street = address.getString("street");
// Print values
System.out.println("Name: " + name);
System.out.println("Age: " + age);
System.out.println("Is Employee: " + isEmployee);
System.out.println("Street: " + street);
}
}
Converting JSON String to JSONArray
Here is how you can convert a JSON string to a JSONArray:
import org.json.JSONArray;
import org.json.JSONObject;
public class JsonStringToArray {
public static void main(String[] args) {
String jsonArrayString = "[{\"name\":\"John Doe\",\"age\":30},{\"name\":\"Jane Smith\",\"age\":25}]";
// Convert JSON string to JSONArray
JSONArray jsonArray = new JSONArray(jsonArrayString);
// Iterate over the array
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
String name = jsonObject.getString("name");
int age = jsonObject.getInt("age");
// Print values
System.out.println("Name: " + name);
System.out.println("Age: " + age);
}
}
}
Using Gson Library
Gson is another popular library for JSON manipulation provided by Google. It offers more flexibility and better integration with Java objects.
Maven Dependency
First, include the Gson library in your project. If you are using Maven, add the following dependency to your pom.xml file:
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.8</version>
</dependency>
Converting JSON String to Java Object
Here is how you can convert a JSON string to a Java object using Gson:
import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
public class GsonExample {
public static void main(String[] args) {
String jsonString = "{\"name\":\"John Doe\",\"age\":30,\"isEmployee\":true,\"address\":{\"street\":\"123 Main St\",\"city\":\"Anytown\",\"zip\":\"12345\"},\"phoneNumbers\":[\"123-456-7890\",\"098-765-4321\"]}";
// Convert JSON string to JsonObject
JsonObject jsonObject = JsonParser.parseString(jsonString).getAsJsonObject();
// Accessing data
String name = jsonObject.get("name").getAsString();
int age = jsonObject.get("age").getAsInt();
boolean isEmployee = jsonObject.get("isEmployee").getAsBoolean();
JsonObject address = jsonObject.get("address").getAsJsonObject();
String street = address.get("street").getAsString();
// Print values
System.out.println("Name: " + name);
System.out.println("Age: " + age);
System.out.println("Is Employee: " + isEmployee);
System.out.println("Street: " + street);
}
}
Converting JSON String to Java Array
Here is how you can convert a JSON string to a Java array using Gson:
import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonParser;
public class GsonArrayExample {
public static void main(String[] args) {
String jsonArrayString = "[{\"name\":\"John Doe\",\"age\":30},{\"name\":\"Jane Smith\",\"age\":25}]";
// Convert JSON string to JsonArray
JsonArray jsonArray = JsonParser.parseString(jsonArrayString).getAsJsonArray();
// Iterate over the array
for (JsonElement element : jsonArray) {
JsonObject jsonObject = element.getAsJsonObject();
String name = jsonObject.get("name").getAsString();
int age = jsonObject.get("age").getAsInt();
// Print values
System.out.println("Name: " + name);
System.out.println("Age: " + age);
}
}
}
Conclusion
Converting JSON strings to JSON objects or arrays in Java is straightforward with the help of libraries like org.json and Gson. Both libraries offer robust methods for parsing JSON data and accessing its contents, making them indispensable tools for Java developers working with JSON. Choose the library that best fits your project’s requirements and coding style.
With the examples provided, you should now be able to effectively convert JSON strings into JSON objects and arrays in your Java applications. Happy coding!


Leave a Reply