Java JSON解析,字符串到对象(“无法将JSON对象转换为JSON数组”)

Java JSON解析,字符串到对象(“无法将JSON对象转换为JSON数组”),java,android,json,Java,Android,Json,我有一个JSON字符串,我正试图使用以下代码将其解析到数组中: 试一试{ 字符串持有者=getJSONStringgetApplicationContext; JSONArray JSONARR=新的JSONArrayholder; 列表数据列表=新的ArrayList; 对于int i=0;i

我有一个JSON字符串,我正试图使用以下代码将其解析到数组中:

试一试{ 字符串持有者=getJSONStringgetApplicationContext; JSONArray JSONARR=新的JSONArrayholder; 列表数据列表=新的ArrayList; 对于int i=0;i 无法将类型org.json.JSONObject转换为JSONArray

JSON字符串如下所示:

"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中找到相同的库

一,-

二,-


谢谢,它起作用了,我在这上面挠了很久了。