我的基本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:不是原始数组:class org.json.JSONObject
我正在通过以下方式检索JSON:
JSONParser jParser = new JSONParser();
// Getting JSON from URL
JSONObject json = jParser.getJSONFromUrl(url);
使用JSONArray myJson = new JSONArray(json);
谢谢!
答案 0 :(得分:1)
在没有键的情况下迭代你的json,如下所示
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();
}
答案 1 :(得分:0)
该错误的原因可能是无效的json。
这就是你的data2键 - 值对
的方式"data2":contents of data 2"
在内容之前加上引号“并使用此
"data2":"contents of data 2"
更改此错误的所有出现,它应该有效。如果它改变了你的任何内容,请告诉我。
答案 2 :(得分:0)
在python中,如果你有json数据
数据强> = [{ “data1”:“data1的内容”, “data2”:“数据内容2” }, { “data1”:“data1的内容”, “data2”:“数据内容2” } ]
您可以使用以下方式访问它: 打印“data1:”,数据[0] [“data1”]