在Java中解析无名JSON数组
我正在尝试解析POST请求返回的无名JSONArray,格式如下:在Java中解析无名JSON数组,java,json,arrays,Java,Json,Arrays,我正在尝试解析POST请求返回的无名JSONArray,格式如下: [{"key": value}, {"key": value}, {"key": value}] 我假设我可以使用以下代码段调用数组: JSONArray resArr = result.getJSONArray(""); 其中result是POST返回的JSONObject,但我得到了 Cannot parse json request result: org.json.JSONException: A JSONObjec
[{"key": value},
{"key": value},
{"key": value}]
我假设我可以使用以下代码段调用数组:
JSONArray resArr = result.getJSONArray("");
其中result
是POST返回的JSONObject,但我得到了
Cannot parse json request result: org.json.JSONException: A JSONObject text must begin with '{' at 1 [character 2 line 1]
是否有其他方法可以调用getJSONArray
,这样我就可以在不使用键的情况下获取JSONArray?正确的方法:
使用1将其解析为数组:
老套的方式:
作为一个快速的黑客攻击,你可以考虑建立一个有效的JSON对象。只需将
{“wrappedArray”:
连接到您拥有的字符串的开头,并将}
连接到结尾。然后,您应该能够解析该数组并调用getJSONArray(“wrappedArray”)
来获取该数组
1这是一个指向javadoc的链接,您可以使用它来获取有关如何使用JSON库的更多详细信息。默认JSON包拒绝接受
[
作为初始字符。因此,result
不能存储为JSONObject。您(嗯,我)需要做的是在本地存储后将result
存储为JSONArray。任何访问或修改数组的尝试都将返回[parsing error]。因此,为了访问JSONArray,您需要重新编写POST方法,以便能够返回JSONArray(实际上,复制和粘贴该方法,更改类型和名称)。这应该可以解决类型问题,因为[
是JSONArray的预期起始字符。这两种方法都不起作用,我使用这两种方法都收到了相同的错误消息。您可以打印连接的字符串吗?这里可能有其他问题。发现了问题。默认JSON包拒绝接受[
作为它的初始字符。result
不能作为JSONObject存储。没有必要“包装”数组,因为任何JSON解析器都可以处理数组。@wwPieeter——它是数组,所以你可以用JSONArray解析它。转到JSON.org学习JSON语法。学习只需要5-10分钟。
JSONArray myJsonArray = new JSONArray(resultAsString);