Create a txt file named jsondata.txt with the below data
{
"firstName": "Duke",
"lastName": "Java",
"age": 18,
"streetAddress": "100 Internet Dr",
"city": "JavaTown",
"state": "JA",
"postalCode": "12345",
"phoneNumbers": [
{ "Mobile": "111-111-1111" },
{ "Home": "222-222-2222" }
]
}
Below is the java code which will read the above text file
Main Code
package objectmodel;
import java.io.FileReader;
import javax.json.Json;
import javax.json.JsonArray;
import javax.json.JsonNumber;
import javax.json.JsonObject;
import javax.json.JsonReader;
import javax.json.JsonString;
import javax.json.JsonStructure;
import javax.json.JsonValue;
public class Example1 {
public static void main(String[] args) throws Exception {
JsonReader reader = Json.createReader(new FileReader("jsondata.txt"));
JsonStructure jsonStructure = reader.read();
navigateTree(jsonStructure, null);
reader.close();
}
public static void navigateTree(JsonValue tree, String key) {
switch(tree.getValueType()) {
case OBJECT:if(key != null) {
System.out.println("name: " + key);
} else {
System.out.println("name: Parent Object");
}
JsonObject object = (JsonObject) tree;
for(String name : object.keySet()) {
navigateTree(object.get(name), name);
}
break;
case ARRAY: JsonArray array = (JsonArray) tree;
for(JsonValue value : array) {
navigateTree(value, key);
}
break;
case STRING:JsonString jsonString = (JsonString) tree;
System.out.println("name: " + key + " value: " + jsonString.getString());
break;
case NUMBER:JsonNumber jsonNumber = (JsonNumber) tree;
System.out.println("name: " + key + " value: " + jsonNumber.toString());
break;
}
}
}
Output
name: Parent Object
name: firstName value: Duke
name: lastName value: Java
name: age value: 18
name: streetAddress value: 100 Internet Dr
name: city value: JavaTown
name: state value: JA
name: postalCode value: 12345
name: phoneNumbers
name: Mobile value: 111-111-1111
name: phoneNumbers
name: Home value: 222-222-2222