我的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
中,但我不认为这是最好的方法。
5条答案
按热度按时间aoyhnmkz1#
你想要这样的东西。
4c8rllxm2#
你不应该使用JSONObject.toString。这是你应该如何迭代你的数组:
4urapxun3#
您应该使用
arrJson
对象访问数据,而不是使用它们的字符串结果创建新的JSONObjects。wz3gfoph4#
你可以使用Iterator进行迭代,我也复制了一个JSON字符串示例给你,希望能对你有所帮助:
ozxc1zmp5#
你也可以使用“for-of”/“for-in”循环: