我试图解析从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吗?
答案 0 :(得分:3)
使用JSONArray(String)
1 :
JSONArray myJsonArray = new JSONArray(resultAsString);
作为一个快速破解,您可以考虑构建一个有效的JSON对象。只需将{"wrappedArray":
连接到您拥有的字符串的开头,然后}
连接到结尾。然后,您应该能够解析它并调用getJSONArray("wrappedArray")
来获取此数组。
1 这是一个javadoc的链接,您可以使用它来获取有关如何使用JSON库的更多详细信息。
答案 1 :(得分:-2)
默认的JSON包拒绝接受[
作为它的初始字符。因此,result
不能存储为JSONObject。您(我,我)需要做的是,只要它存储在本地,就将result
存储为JSONArray。任何访问或修改数组的尝试都将返回[解析错误。因此,为了访问JSONArray,您需要重新编写POST方法以便能够返回JSONArrays(实际上,复制并粘贴方法,更改类型和名称)。这应解决类型问题,因为[
是JSONArray的预期起始字符。