Android 将数组格式的JSON字符串转换为java中的数组
我尝试将以下字符串作为json对象:Android 将数组格式的JSON字符串转换为java中的数组,android,Android,我尝试将以下字符串作为json对象: [ { "id": "picture1", "caption": "sample caption", "picname": "sample picture name" } ] 然后把它变成一个数组,这样我就可以填充一个列表 我尝试通过以下操作将其转换为jsonarray: JSONArray myjsonarray = myjson.toJSONArray(string_contain
[
{
"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问题如下:
解决方案:
现在您有了JSONArray,对它进行迭代并准备您想要的任何类型的ArrayList。问题在这里:
解决方案:
现在有了JSONArray,对它进行迭代,并准备任意类型的ArrayList。JSONArray不起作用,因为您提供的JSON不是数组。您可以在此处阅读有关JSON语法的更多信息: 同时,您可以通过一次对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");
}
...
等等。JSONArray无法工作,因为您提供的JSON不是数组。您可以在此处阅读有关JSON语法的更多信息: 同时,您可以通过一次对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");
}
...
等等。这里有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");
}
这是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");
}
什么是迈森?什么是temparay?你看过报纸了吗?请注意接受字符串的构造函数。我编辑了这篇文章以使其更有意义。我很抱歉。temparray是一个字符串,但我在代码中重命名了该变量,因为它是一个糟糕的变量名OK,所以清除了一些内容。但你没有提到什么是“myjson”。但是,请参阅@PareshMayani的答案。myson是什么?什么是temparay?你看过报纸了吗?请注意接受字符串的构造函数。我编辑了这篇文章以使其更有意义。我很抱歉。temparray是一个字符串,但我在代码中重命名了该变量,因为它是一个糟糕的变量名OK,所以清除了一些内容。但你没有提到什么是“myjson”。但是,请参见@PareshMayani的答案。你真的更喜欢String[]而不是ArrayList吗?不,我想我只是认为,因为问题指定了一个数组,这正是他/她想要的。你真的更喜欢String[]而不是ArrayList吗?不,我想我只是想,因为问题指定了一个数组,这正是他/她想要的。对不起,我只能将一个标记为正确,但这也是正确的。谢谢你,帕雷什·马亚尼!我会投票给你,但我还没有投票给你的名声。我会的。再次感谢。对不起,我只能将一个标记为正确,但这也是正确的。谢谢你,帕雷什·马亚尼!我会投票给你,但我还没有投票给你的名声。我会的。再次感谢你。