我需要帮助...我有一个php文件,它返回两个json Arrays,如下所示:
[{ "id":"1",
"item":"hammers",
"aisle":"20"
}
{ "id":"1",
"item":"hammers",
"aisle":"20"
}]
[{ "id":"1",
"itemFound":"Your item #item",
"ThankYou":"and Thank You for using Txtcore!"
}]
现在,我想在Android中获取第二个数组项。我现在有以下代码,如: JSONArray jsonArray = new JSONArray(result);
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
items.add(jsonObject.getString("item"));
aisles.add(""+jsonObject.getString("item");
}
但显然,这会返回第一个数组中的对象。我想从第二个数组中获取对象。任何建议。
答案 0 :(得分:1)
您的JSON无效,但您可以按如下方式获取您的元素。这是许多人的解决方案(只是一个故事)。
String str = "YOUR_JSON_RESPONSE";
String array[] = str.split("\\[\\{");//
try {
JSONArray jsonArray=new JSONArray("[{" + array[2]));
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
答案 1 :(得分:0)
我猜你不得不做一些脏编码,因为PHP页面返回的数据不是很好的JSON。
您可以尝试将JSON数据转换为:
{ "data" : [ <array_1>, <array_2> ]}
然后使用JSON解析器。使用正则表达式进行简单替换就可以了。
result.replaceAll("\\]\\s*\\[", "], [");
StringBuffer buffer=new StringBuffer(result);
buffer.insert(0,"{ \"data\": ");
buffer.append(" }");
JSONObject jsonObject = new JSONObject(buffer.toString());
JSONArray secondArray= jsonObject.getJSONArray("data").getJSONArray(1);
可以使用适当的正则表达式在一个步骤中创建有效的JSON字符串。希望有更多时间的人可以在这里发布。