我正在尝试将以下字符串作为json对象:
[
{
"id": "picture1",
"caption": "sample caption",
"picname": "sample picture name"
}
]
并将其转换为数组,以便我可以填充列表
我试过把它变成jsonarray:
JSONArray myjsonarray = myjson.toJSONArray(string_containing_json_above);
但这似乎不起作用。
==============
以下是工作解决方案的完整代码
myjson = new JSONObject(temp);
String String_that_should_be_array = myjson.getString("piclist");
JSONArray myjsonarray = new JSONArray(String_that_should_be_array);
For(int i = 0; i < myjsonarray.length(); i++){
JSONObject tempJSONobj = myjsonarray.getJSONObject(i);
showToast(tempJSONobj.get("caption").toString());
}
temp是来自服务器的json
答案 0 :(得分:4)
问题在这里:
JSONArray myjsonarray = myjson.toJSONArray(temparray);
<强>解决方案:强>
JSONArray myjsonarray = new JSONArray(myJSON);
// myJSON is String
现在,您正在使用JSONArray,对其进行迭代并准备ArrayList
您想要的任何类型。
答案 1 :(得分:3)
这里你得到JSONArray所以改变
JSONArray myjsonarray = myjson.toJSONArray(temparray);
行如下图所示
JSONArray jsonArray = new JSONArray(readlocationFeed);
之后
JSONArray jsonArray = new JSONArray(readlocationFeed);
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject explrObject = jsonArray.getJSONObject(i);
explrObject.getString("caption");
}
答案 2 :(得分:0)
JSONArray无效,因为您提供的JSON不是数组。您可以在此处阅读有关JSON语法的更多信息:http://www.w3schools.com/json/json_syntax.asp
与此同时,您可以通过一次将JSON一个字符串削减来手动创建数组。
JSONObject strings = new JSONObject(jsonString);
String array[] = new String[5];
if (jsonString.has("id"){
array[0] = jsonString.getString("id");
}
if (jsonString.has("caption"){
array[1] = jsonString.getString("caption");
}
...
等