The json in json lint 我发现的每个类似的响应都有人错误地使用了JSONArray。我正在使用JSONObject。
HttpResponse response = httpClient.execute(httpGet);
String json_string = EntityUtils.toString(response.getEntity(), "UTF-8");
updateBoundaries(new JSONObject(json_string));
System.out.println(json_string);
获取错误
org.json.JSONException:Value {“TopLeftCorner”:{“Longitude”:0.0,“Latitude”:100.0},“TopRightCorner”:{“Longitude”:100.0,“Latitude”:100.0},“BottomLeftCorner” :{“经度”:0.0,“纬度”:0.0},“BottomRightCorner”:{“经度”:100.0,“纬度”:0.0}}类型java.lang.String无法转换为JSONObject
但是,当我将JSON粘贴到JSON Lint时,它完全没问题。当我打印出它试图解析的字符串时,它看起来像
“{\” TopLeftCorner \ “:{\” 经度\ “:0.0,\” 纬度\ “:100.0},\” TopRightCorner \ “:{\” 经度\ “:100.0,\” 纬度\“: 100.0},\ “BottomLeftCorner \”:{\ “经度\”:0.0,\ “纬度\”:0.0},\ “BottomRightCorner \”:{\ “经度\”:100.0,\ “纬度\”:0.0} }“
看起来它应该是可接受的JSON,但JSONObject由于某种原因无法解析它。发生了什么事?
编辑:stacktrace
W/System.err: org.json.JSONException: Value {"TopLeftCorner":{"Longitude":0.0,"Latitude":100.0},"TopRightCorner":{"Longitude":100.0,"Latitude":100.0},"BottomLeftCorner":{"Longitude":0.0,"Latitude":0.0},"BottomRightCorner":{"Longitude":100.0,"Latitude":0.0}} of type java.lang.String cannot be converted to JSONObject
W/System.err: at org.json.JSON.typeMismatch(JSON.java:111)
W/System.err: at org.json.JSONObject.<init>(JSONObject.java:160)
W/System.err: at org.json.JSONObject.<init>(JSONObject.java:173)
W/System.err: at com.example.chan.locationapiapp.MainActivity$1$1.run(MainActivity.java:62)
W/System.err: at java.lang.Thread.run(Thread.java:761)
答案 0 :(得分:0)
事实证明,我正在击中的服务器在字符串周围产生了一对额外的引号(&#34;&#34; STRING&#34;&#34;)我不得不更换所有的反斜杠\用空字符,然后它就能解析了。