How to parse JSON in Java
Last Updated : 07 Aug, 2019
JSON (JavaScript Object Notation) is a lightweight, text-based, language-independent data exchange format that is easy for humans and machines to read and write. JSON can represent two structured types: objects and arrays. An object is an unordered collection of zero or more name/value pairs. An array is an ordered sequence of zero or more values. The values can be strings, numbers, booleans, null, and these two structured types.
Below is a simple example from Wikipedia that shows JSON representation of an object that describes a person. The object has string values for first name and last name, a number value for age, an object value representing the person’s address, and an array value of phone number objects.
{ "firstName": "John", "lastName": "Smith", "age": 25, "address": { "streetAddress": "21 2nd Street", "city": "New York", "state": "NY", "postalCode": 10021 }, "phoneNumbers": [ { "type": "home", "number": "212 555-1234" }, { "type": "fax", "number": "646 555-4567" } ] }
JSON Processing in Java : The Java API for JSON Processing JSON.simple is a simple Java library that allow parse, generate, transform, and query JSON.
Getting Started : You need to download the json-simple-1.1 jar and put it in your CLASSPATH before compiling and running the below example codes.
Json-Simple API : It provides object models for JSON object and array structures. These JSON structures are represented as object models using types JSONObject and JSONArray. JSONObject provides a Map view to access the unordered collection of zero or more name/value pairs from the model. Similarly, JSONArray provides a List view to access the ordered sequence of zero or more values from the model.
Write JSON to a file
Let us see an example that writes above JSON data into a file “JSONExample.json”, with help of JSONObject and JSONArray.
import java.io.FileNotFoundException; import java.io.PrintWriter; import java.util.LinkedHashMap; import java.util.Map; import org.json.simple.JSONArray; import org.json.simple.JSONObject; public class JSONWriteExample { public static void main(String[] args) throws FileNotFoundException { JSONObject jo = new JSONObject(); jo.put( "firstName" , "John" ); jo.put( "lastName" , "Smith" ); jo.put( "age" , 25 ); Map m = new LinkedHashMap( 4 ); m.put( "streetAddress" , "21 2nd Street" ); m.put( "city" , "New York" ); m.put( "state" , "NY" ); m.put( "postalCode" , 10021 ); jo.put( "address" , m); JSONArray ja = new JSONArray(); m = new LinkedHashMap( 2 ); m.put( "type" , "home" ); m.put( "number" , "212 555-1234" ); ja.add(m); m = new LinkedHashMap( 2 ); m.put( "type" , "fax" ); m.put( "number" , "212 555-1234" ); ja.add(m); jo.put( "phoneNumbers" , ja); PrintWriter pw = new PrintWriter( "JSONExample.json" ); pw.write(jo.toJSONString()); pw.flush(); pw.close(); } } |
Output from file “JSONExample.json” :
{ "lastName":"Smith", "address":{ "streetAddress":"21 2nd Street", "city":"New York", "state":"NY", "postalCode":10021 }, "age":25, "phoneNumbers":[ { "type":"home", "number":"212 555-1234" }, { "type":"fax", "number":"212 555-1234" } ], "firstName":"John" }
Note : In JSON, An object is an unordered set of name/value pairs, so JSONObject doesn’t preserve the order of an object’s name/value pairs, since it is (by definition) not significant. Hence in our output file, order is not preserved.
Read JSON from a file
Let us see an example that read JSON data from above created file “JSONExample.json” with help of JSONParser, JSONObject and JSONArray.
import java.io.FileReader; import java.util.Iterator; import java.util.Map; import org.json.simple.JSONArray; import org.json.simple.JSONObject; import org.json.simple.parser.*; public class JSONReadExample { public static void main(String[] args) throws Exception { Object obj = new JSONParser().parse( new FileReader( "JSONExample.json" )); JSONObject jo = (JSONObject) obj; String firstName = (String) jo.get( "firstName" ); String lastName = (String) jo.get( "lastName" ); System.out.println(firstName); System.out.println(lastName); long age = ( long ) jo.get( "age" ); System.out.println(age); Map address = ((Map)jo.get( "address" )); Iterator<Map.Entry> itr1 = address.entrySet().iterator(); while (itr1.hasNext()) { Map.Entry pair = itr1.next(); System.out.println(pair.getKey() + " : " + pair.getValue()); } JSONArray ja = (JSONArray) jo.get( "phoneNumbers" ); Iterator itr2 = ja.iterator(); while (itr2.hasNext()) { itr1 = ((Map) itr2.next()).entrySet().iterator(); while (itr1.hasNext()) { Map.Entry pair = itr1.next(); System.out.println(pair.getKey() + " : " + pair.getValue()); } } } } |
Output:
John Smith 25 streetAddress : 21 2nd Street postalCode : 10021 state : NY city : New York number : 212 555-1234 type : home number : 212 555-1234 type : fax
Similar Reads
How to Start Learning Java?
Java is one of the most popular and widely used programming languages and platforms. A platform is an environment that helps to develop and run programs written in any programming language. Java is fast, reliable, and secure. From desktop to web applications, scientific supercomputers to gaming cons
8 min read
StAX XML Parser in Java
This article focuses on how one can parse a XML file in Java.XML : XML stands for eXtensible Markup Language. It was designed to store and transport data. It was designed to be both human- and machine-readable. Thatâs why, the design goals of XML emphasize simplicity, generality, and usability acros
6 min read
How to Run Java Program?
Java is a popular, high-level, object-oriented programming language that was developed by James Gosling and his team at Sun Microsystems (now owned by Oracle Corporation) in the mid-1990s. It is widely used for developing various kinds of software, including web applications, desktop applications, m
2 min read
How to Generate JSON with JsonGenerator in Java?
The JavaScript Object Notation (JSON) is a standard text-based format for representing structured data based on JavaScript object syntax. It is lightweight, flexible, and faster than XML, which is the reason that it is used widely for data interchange between server and client. If you ever work on J
15 min read
JAVA DOM Parser
IntroductionJava is one of the most popular programming languages that is applicable to different purposes, starting from the web environment and ending with business-related ones. XML processing is one of the most important facets in the competence of Java as a language. The principal data exchange
8 min read
What is JSON-Java (org.json)?
JSON(Javascript Object Notation) is a lightweight format of data exchange and it is independent of language. It is easily read and interpreted by humans and machines. Hence nowadays, everywhere JSON is getting used for transmitting data. Let us see how to prepare JSON data by using JSON.org JSON API
5 min read
Working with JSON Data in Java
JSON stands for JavaScript Object Notation which is a lightweight text-based open standard designed which is easy for human-readable data interchange. In general, JSON is extended from JavaScript. JSON is language-independent and It is easy to read and write. The file extension of JSON is .json. Exa
3 min read
How to Setup Jackson in Java Application?
JSON(Javascript Object Notation) is the most popular format for the exchange of data in the world of web applications. The browsers can easily parse json requests and convert them to javascript objects. The servers parse json requests, process them, and generates a new json response. JSON is self-de
7 min read
How to Install GSON Module in Java?
Google GSON is a simple Java-based serialization/deserialization library to convert Java Objects into their JSON representation. It can also be used to convert a JSON string to an equivalent Java Object. It is a reliable, fast, and efficient extension to the Java standard library. It's also highly o
3 min read
How to Iterate Any Map in Java?
In Java, a Map is a data structure that is used to store key-value pairs. Understanding how to iterate over the elements of a map plays a very important role. There are 5 ways to iterate over the elements of a map, and in this article, we are going to discuss all of them. Note: We cannot iterate ove
5 min read