Java JSON解析,字符串到对象(“无法将JSON对象转换为JSON数组”)
我有一个JSON字符串,我正试图使用以下代码将其解析到数组中: 试一试{ 字符串持有者=getJSONStringgetApplicationContext; JSONArray JSONARR=新的JSONArrayholder; 列表数据列表=新的ArrayList; 对于int i=0;iJava JSON解析,字符串到对象(“无法将JSON对象转换为JSON数组”),java,android,json,Java,Android,Json,我有一个JSON字符串,我正试图使用以下代码将其解析到数组中: 试一试{ 字符串持有者=getJSONStringgetApplicationContext; JSONArray JSONARR=新的JSONArrayholder; 列表数据列表=新的ArrayList; 对于int i=0;i
"data": [
{
"id": "0",
"Open": "1",
"Close": "1",
"High": "1",
"Low": "1"
},
{
"id": "1",
"Open": "1",
"Close": "1",
"High": "1",
"Low": "1"
},
{
"id": "2",
"Open": "1",
"Close": "1",
"High": "1",
"Low": "1"
},
{
"id": "3",
"Open": "1",
"Close": "1",
"High": "1",
"Low": "1"
},
{
"id": "4",
"Open": "1",
"Close": "1",
"High": "1",
"Low": "1"
},
{
"id": "5",
"Open": "1",
"Close": "1",
"High": "1",
"Low": "1"
},
{
"id": "6",
"Open": "1",
"Close": "1",
"High": "1",
"Low": "1"
},
{
"id": "7",
"Open": "1",
"Close": "1",
"High": "1",
"Low": "1"
},
{
"id": "8",
"Open": "1",
"Close": "1",
"High": "1",
"Low": "1"
},
{
"id": "9",
"Open": "1",
"Close": "1",
"High": "1",
"Low": "1"
},
{
"id": "10",
"Open": "1",
"Close": "1",
"High": "1",
"Low": "1"
}
]
}
我正在尝试解析数据,以便以后可以在图表中显示它。我只是尝试将JSON解析为一个列表,以便以后可以将数据拆分为更小的列表id、open、close、high、low,但我不确定是否有更好的方法。虽然我缺少一些数据,但我可以假设出了什么问题: 您的JSON是:
{
"data" : [
{
"id": "0",
"Open": "1",
"Close": "1",
"High": "1",
"Low": "1"
}
]
}
因此,JSON包含一个包含对象数组的对象。
您正试图从根元素(一个对象)创建一个JSONArray。
JSONArray JSONARR=新的JSONArrayholder
您可以解决将代码从根目录导航到数据属性的问题,如下所示:
JSONObject jsonObj = new JSONObject(holder);
JSONArray JSONARR = jsonObj.getJSONArray("data");
你们可以看看这些链接,它们也帮了我很多忙,但它是用C编写的,所以你们也可以在java中找到相同的库 一,- 二,-
谢谢,它起作用了,我在这上面挠了很久了。