In this example we are going to use the JSON-Java (org.json) library to read or parse JSON file. First we start by getting the InputStream
of the JSON file to be read using getResourceAsStream()
method. Next we construct a JSONTokener
from the input stream and create an instance of JSONObject
to read the JSON entries.
We can use method like getString()
, getInt()
, getLong()
, etc to read a key-value from the JSON file. The getJSONArray()
method allow us to read an list of values returned in JSONArray
object. Which can be iterated to get each values represented by the key. Let’s see the detail code snippet below.
package org.kodejava.example.json;
import org.json.JSONArray;
import org.json.JSONObject;
import org.json.JSONTokener;
import java.io.InputStream;
public class ReadJSONString {
public static void main(String[] args) {
// info.json
// {
// "id": "1",
// "name": "Alice",
// "age": "20",
// "courses": [
// "Engineering",
// "Finance",
// "Chemistry"
// ]
//}
String resourceName = "/info.json";
InputStream is = ReadJSONString.class.getResourceAsStream(resourceName);
if (is == null) {
throw new NullPointerException("Cannot find resource file " + resourceName);
}
JSONTokener tokener = new JSONTokener(is);
JSONObject object = new JSONObject(tokener);
System.out.println("Id : " + object.getLong("id"));
System.out.println("Name: " + object.getString("name"));
System.out.println("Age : " + object.getInt("age"));
System.out.println("Courses: ");
JSONArray courses = object.getJSONArray("courses");
for (int i = 0; i < courses.length(); i++) {
System.out.println(" - " + courses.get(i));
}
}
}
The result of the code snippet above is:
Id : 1
Name: Alice
Age : 20
Courses:
- Engineering
- Finance
- Chemistry
Maven Dependencies
<!-- https://repo1.maven.org/maven2/org/json/json/20180813/json-20180813.jar -->
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20180813</version>
</dependency>
Wayan Saryada
Latest posts by Wayan Saryada (see all)
- How do I set the time of java.util.Date instance to 00:00:00? - October 24, 2019
- How to Install Consolas Font in Mac OS X? - March 29, 2019
- How do I clear the current command line in terminal? - February 14, 2019
Hi, I am trying the example you have given but getting an error at the line:
JSONTokener tokener = new JSONTokener(is);
And the error is below:
The constructor JSONTokener(InputStream) is undefined.
Can you please check and know which library you using?
Regards
Rohit
Hi Rohit,
I’m using the library as shown in the maven dependency section in the post above.
There is no such thing as ‘ReadJSONString’. Netbeans throws the fits.
ReadJSONString is the clas sname used in the example, you have to use your class name