Java json
Java Json Parser
javax prepares interface for json parser, but by default we cannot use json parser.
Java 8 ? does not support json operation by default.
javax.json-api
This is one of easy way to parse json.
Get started
Please add following 2 dependencies.
compile group: 'org.glassfish', name: 'javax.json', version: '1.1.2' compile group: 'javax.json', name: 'javax.json-api', version: '1.1.2'
The details :
Package javax.json
javax.json-api is just interface, actual implementation is in glassfish javax.json.
Example
After import above libraries, you can use json-api.
Target json(example)
{
"data":
{
"Tom": {
"Mission: Impossible": "5.0",
"Avater": "4.5",
"The Empire Strikes Back": "1.5",
"The Lord of the Rings": "2.0",
"Fahrenheit 9/11": "3.5"
},
"Michael": {
"The Empire Strikes Back": "4.5",
"Titanic": "2.0",
"Dragonball": "4.5",
"The Lord of the Rings": "2.0",
"Fahrenheit 9/11": "5.0",
"Moneyball": "3.5",
"Avater": "3.0",
"Mission: Impossible": "1.0"
}
}
public void read() {
FileInputStream fis = null;
try {
fis = new FileInputStream(filename);
JsonReader reader = Json.createReader(fis);
JsonObject root = reader.readObject();
JsonObject members = root.getJsonObject("data");
for (String name : members.keySet()) {
JsonObject reviewsjson = members.getJsonObject(name);
for (String key : reviewsjson.keySet()) {
String value = reviewsjson.getString(key); // double value
}
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (fis != null) {
try {
fis.close();
} catch(IOException e) {
e.printStackTrace();
}
}
}
}
