获取" JSONObject [" myKey"]不是JSONArray。"

时间:2014-08-05 13:27:14

标签: java json

我有一些已经工作多年的代码

JSONObject variableData = new JSONObject(request.getParameter("VARIABLE_DATA"));
JSONArray companies = variableData.getJSONArray("COMPANIES");

今天,我收到以下错误:

JSONObject["COMPANIES"] is not a JSONArray.

我在执行getJSONArray()调用之前已经停止了代码,并查看了variableData。这是我发现的:

{"COMPANIES":[{"COMPANY":"2"}]}

对我来说,这看起来像是从有效的JSONObject中提取出来的有效JSONArray,所以我很沮丧并寻求帮助。感谢。

3 个答案:

答案 0 :(得分:1)

使用org.json-20120521.jar时,您的代码正常。我认为你使用的罐子有问题。 enter image description here

答案 1 :(得分:0)

试试这个应该有效:

JSONObject json  = new JSONObject(request.getParameter("VARIABLE_DATA"));

JSONArray jsonarr= json.getJSONArray("COMPANIES");
String company = jsonarr.getJSONObject(0).getString("COMPANY");

答案 2 :(得分:-1)

但"公司":[{" COMPANY":" 2"}]不是有效的json。我要问的其他问题是异常可重现吗?您是否从产生异常的完全相同的请求中获取此数据?您的服务器是否有可能损坏数据?尝试编写涵盖此案例的单元测试,并检查它是否需要你。