我的JSON字符串看起来像这样(包含在一个名为sJSON的字符串变量中):
[
{"id":284}
],
[
{"name":John,"surname":Doe},
{"name":Jane,"surname":Doe}
]
我能够像这样解析第一个数组(使用Java并导入org.json):
JSONArray arrjson = new JSONArray(sJSON);
JSONObject jsonGeneralData = new JSONObject(arrjson.get(0).toString());
String sResult = jsonGeneralData.get("id").toString();
返回预期的结果,即284.我正在努力获得第二个项目数组,并迭代它们.我不确定我的JSON字符串是否格式错误,或者我是否试图以错误的方式访问它.这是我试过的:
JSONObject jsonPersonData = new JSONObject(arrjson.get(1).toString());
这是我得到的,我无法弄清楚如何循环第二个数组内的单个项目.
编辑:
看来这行只解析方括号中的第一个字符串:
JSONArray arrjson = new JSONArray(sJSON);
JSON是错误的(与上面相同的例子),还是它没有正确解析它?我已经设法通过对字符串进行拆分并将它们分别放在自己的JSONArray中来解决问题,但我认为这不是最好的做事方式.
解决方法:
你想要这样的东西..
JSONArray jsonArray = new JSONArray(sJSON);
JSONArray jsonPersonData = jsonArray.getJSONArray(1);
for (int i=0; i<jsonPersonData.length(); i++) {
JSONObject item = jsonPersonData.getJSONObject(i);
String name = item.getString("name");
String surname = item.getString("surname");
}