我已经创建了一个.json文件:
{
"numbers": [
{
"natural": "10",
"integer": "-1",
"real": "3.14159265",
"complex": {
"real": 10,
"imaginary": 2
},
"EOF": "yes"
}
]
}我想使用Json Simple来解析它,以便提取“自然”和“想象”的内容。
这是我到目前为止所写的内容:
JSONParser parser = new JSONParser();
Object obj = parser.parse(new FileReader("...")); //the location of the file
JSONObject jsonObject = (JSONObject) obj;
String natural = (String) jsonObject.get("natural");
System.out.println(natural);问题是natural的值是"null“而不是"10”。当我写jsonObject.get(“虚构的”)时,同样的事情也会发生。
我看了很多网站(包括StackOverflow),我遵循了大多数人写的相同的方式,但我无法解决这个问题。
发布于 2016-04-02 01:47:55
您需要首先在数组中找到JSONObject。您正在尝试查找顶级JSONObject的字段natural,该字段只包含字段numbers,因此它返回null,因为它找不到natural。
要解决这个问题,您必须首先获取数字数组。
试着这样做:
JSONParser parser = new JSONParser();
Object obj = parser.parse(new FileReader("...")); //the location of the file
JSONObject jsonObject = (JSONObject) obj;
JSONArray numbers = (JSONArray) jsonObject.get("numbers");
for (Object number : numbers) {
JSONObject jsonNumber = (JSONObject) number;
String natural = (String) jsonNumber.get("natural");
System.out.println(natural);
}发布于 2016-04-02 01:46:21
文件中的对象只有一个属性,名为numbers。
没有natural属性。
您可能希望检查该数组中的对象。
https://stackoverflow.com/questions/36362619
复制相似问题