Java Can';t将字符串解析为JSONArray
我有以下字符串(据我所知)的有效格式Java Can';t将字符串解析为JSONArray,java,json,Java,Json,我有以下字符串(据我所知)的有效格式 [ { "name":"John Doe" }, { "name":"Jane Doe" } ] 调用以下命令后: return new JSONArray(jsonString); 其中jsonString是上面给出的JSON。我得到以下错误: org.json.JSONException: Value jsonString of type java.lang.String cannot be
[
{
"name":"John Doe"
},
{
"name":"Jane Doe"
}
]
调用以下命令后:
return new JSONArray(jsonString);
其中jsonString
是上面给出的JSON。我得到以下错误:
org.json.JSONException: Value jsonString of type java.lang.String cannot be converted to JSONArray
你知道为什么解析器不接受这个字符串吗
编辑
问题已经解决了。数组在JSON输出中编码为字符串。我首先用getString(param)方法检索字符串,而不是直接用getJsonArray转换它,然后将字符串转换为json数组。json似乎在上有效。但快速浏览一下就会发现问题还有其他可能的根源:
- 你和我在一起吗
- 您是否需要为您的项目添加新的内容
- 问题已经解决了。该数组在完整的JSON输出中被编码为字符串。我首先用getString(param)方法检索字符串,而不是直接用getJsonArray进行转换,然后将字符串转换为json数组。如何在Java代码中表示json?换句话说,它是如何从您发布的JSON块变成
字符串变量的?我只是试着把你的JSON放到一个字符串中,并转义所有的引号,结果成功了。另外,您使用的是什么版本的org.json.json
?如果您从文件中读取json,请确保注意文件的编码。我将json表示为json对象。线程中的块是键数据
的字符串值。首先,我将整个JSON块转换为JSONObject
。之后,我尝试通过调用getJSONArray(“data”)
来获取键data
下的数组。字符串已正确转义。能否添加所描述的代码?正如我所说的,这对我来说是可行的,所以我认为将JSON提取到字符串中的方式有问题。问题不在于输入JSON。此外,org.json jar版本20160810解析您的输入时不会出现问题。