[英]Parsing a JSON file in Java using json-simple
我創建了一個 .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("imaginary") 時也會發生同樣的事情。
我查看了許多網站(包括 StackOverflow),我遵循大多數人編寫的相同方式,但我無法解決這個問題。
您需要首先在數組中找到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);
}
文件中的對象只有一個屬性,名為numbers
。
沒有natural
財產。
您可能想要檢查該數組中的對象。
加上@Jermey Hanion 的回答和評論,這是我為獲得“虛構”和“自然”所做的事情
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");
JSONObject complex = (JSONObject) jsonNumber.get("complex");
String imaginary = (String) complex.get("imaginary");
System.out.println(natural);
}
Jeremey 關於獲得想象的答案是不正確的,或者它可能是正確的。 據我所知,上面的代碼片段是在我的項目上工作的。
PS。 很抱歉恢復線程,但我認為這對於希望學習 JSON.simple 的人來說是一個有用的資源
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.