【问题标题】:Parse JSON without key无密钥解析 JSON
【发布时间】:2016-09-29 08:01:23
【问题描述】:

我的基本 JSON 数据结构是这样的:

[
  {
    "data1":"contents of data1",
    "data2":"contents of data 2"
  },
  {
    "data1":"contents of data1",
    "data2":"contents of data 2"
  }
]

我尝试使用JSONArray myJson = new JSONArray(json);

但它给了我:

org.json.JSONException:不是原始数组:类 org.json.JSONObject

我正在通过以下方式检索 JSON:

JSONParser jParser = new JSONParser();

// Getting JSON from URL
JSONObject json = jParser.getJSONFromUrl(url);

并使用 JSONArray myJson = new JSONArray(json); 将其转换为 JSONArray

谢谢!

【问题讨论】:

标签: android json


【解决方案1】:

如下迭代你的json而不用key

try {
    JSONArray jsonArray = new JSONArray("[{\"data1\":\"contents of data1\",\"data2\":\"contents of data 2\"},{\"data1\":\"contents of data1\",\"data2\":\"contents of data 2\"}]");

    for (int i = 0; i < jsonArray.length(); i++) {
        JSONObject jsonObject = jsonArray.getJSONObject(i);

        Iterator<?> keys = jsonObject.keys();

        while (keys.hasNext()) {
            String key = (String) keys.next();
            System.out.println("Mykey: " + key + " value: " + jsonObject.getString(key));    
        }
    }

} catch (JSONException e) {
    e.printStackTrace();
}

【讨论】:

  • 抱歉,只是打错字了。
【解决方案2】:

该错误的原因可能是无效的 json。

这就是你的 data2 键值对的样子

"data2":contents of data 2"

将引号 " 放在 contents 之前并使用它

"data2":"contents of data 2"

更改此错误的所有发生,它应该可以工作。如果它对你有任何改变,请告诉我。

【讨论】:

  • 抱歉,只是打错字了。
【解决方案3】:

在python中,如果你有json数据

数据=[{ "data1":"data1 的内容", "data2":"数据 2 的内容" }, { "data1":"data1 的内容", "data2":"数据 2 的内容" } ]

您可以使用以下方式访问它: 打印 "data1:",data[0]["data1"]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多