Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中解析无名JSON数组_Java_Json_Arrays - Fatal编程技术网

在Java中解析无名JSON数组

在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

我正在尝试解析POST请求返回的无名JSONArray,格式如下:

[{"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);