我有一些已经工作多年的代码
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,所以我很沮丧并寻求帮助。感谢。
答案 0 :(得分:1)
使用org.json-20120521.jar
时,您的代码正常。我认为你使用的罐子有问题。
答案 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。我要问的其他问题是异常可重现吗?您是否从产生异常的完全相同的请求中获取此数据?您的服务器是否有可能损坏数据?尝试编写涵盖此案例的单元测试,并检查它是否需要你。