我在使用 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 始终为空。虽然,json 格式是正确的,它应该按预期工作!上面的 Java 代码适用于给定的示例 json(也在上面),但 Java 代码不适用于 32MB 的 json 文件。 json 文件的位置也正确,格式也正确,但我仍然遇到此访问问题!
访问 json 文件哪里出错了?我一直在寻找类似的问题,并且按照确切的说明访问了 json 文件。但是我只是迷失了正确的方向,因此,寻找使此代码正常工作的建议。非常感谢您的宝贵时间!
最佳答案
下面的代码非常适合我。你能检查指定的文件位置是否正确吗?也可以尝试像 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>
关于java - 如何使用 Java 访问 JSONObject 中的 JSONArray?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32181072/