![](/img/trans.png)
[英]How to access what appears to be JSONObject, in JSONObject, in a JSONArray? Java/Android
[英]How to access JSONArray in a JSONObject using Java?
我在使用json-simple-1.1.1.jar讀取Java中的json文件時訪問JSONArray(“頁面”)時遇到問題
我的json文件大小約為32MB,格式如下:
{
"id": "0912898213",
"pages": [
{
"pageUrl": "http://www.example0.com",
"results": [
{
"number": "1"
},
{
"number": "2"
}
]
},
{
"pageUrl": "http://www.example1.com",
"results": [
{
"number": "3"
},
{
"number": "4"
}
]
}
]
}
而訪問此json文件的Java代碼如下:
JSONParser parser=new JSONParser();
JSONObject pagesObject = (JSONObject) parser.parse(new FileReader(PATH_JSON_DataExtractor));
JSONArray jsonArray= (JSONArray) pagesObject.get("pages");
for(int i=0; i<jsonArray.size(); i++){}
問題: jsonArray始終為null。 雖然,json格式是正確的,並且應該可以正常工作! 上面的Java代碼適用於給定的示例json(同樣在上面),但是Java代碼不適用於32MB json文件。 json文件的位置也正確,格式也正確,但是仍然出現此訪問問題!
我在哪里出錯訪問json文件? 我一直在尋找類似的問題,並且已經按照確切的說明訪問json文件。 但是,我只是迷失了正確性,因此,在尋找使該代碼正常工作的建議。 非常感謝您的寶貴時間!
使用下面的代碼,它對我來說是完美的。 您可以檢查指定的文件位置是否正確? 也嘗試讀取id,例如pagesObject.get("id")
package json.simple;
import java.io.FileReader;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
public class ReadJSON {
public static void main(String[] args) throws Exception {
JSONParser parser = new JSONParser();
JSONObject pagesObject = (JSONObject) parser.parse(new FileReader("/home/user/tmp/test.json"));
System.out.println(pagesObject.get("id"));
System.out.println(pagesObject.get("pages").getClass().getName());
JSONArray jsonArray= (JSONArray) pagesObject.get("pages");
for(int i=0; i<jsonArray.size(); i++){
System.out.println(jsonArray.get(i));
}
}
}
這是我的test.json的內容。 與您完全一樣
{
"id": "0912898213",
"pages": [
{
"pageUrl": "http://www.example0.com",
"results": [
{
"number": "1"
},
{
"number": "2"
}
]
},
{
"pageUrl": "http://www.example1.com",
"results": [
{
"number": "3"
},
{
"number": "4"
}
]
}
]
}
這是我對Maven的依賴
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1.1</version>
</dependency>
現在終於可以正常工作了,但我仍然不知道問題的真正原因。 我將文件划分為兩個單獨的json文件,並在兩個文件上執行了代碼,然后工作了。 現在,我只需要合並它們並完成它! 這不是一個好的解決方案,但是找不到其他方法!
用這個:-
JSONArray jsonArray= (JSONArray) pagesObject.getJSONArray("pages");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.