2017-01-25 5 views
-2

The json in json lint Каждый подобный ответ на это, который я нашел, некорректно использует JSONArray. Я использую JSONObject.JSONException при попытке проанализировать результат HttpResponse

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: Значение { "TopLeftCorner": { "долгота": 0.0, "широта": 100,0}, "TopRightCorner": { "долготу »: 100.0,« Широта »: 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 не может разобрать его по какой-то причине. Что происходит?

Edit: 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

Вы 'toString()' 'd уже действующая строка JSON. –

+0

Также обратите внимание: Apache HTTP устарел на Android. Волейбол может делать запросы JSON. https://developer.android.com/training/volley/request.html#request-json –

+0

Спасибо! Я попытаюсь использовать это вместо этого. Мне надоело общаться с ошибками JSON - если Волли может сделать это для меня, это будет намного лучше. –

ответ

0

Оказывается, что сервер я бил производил дополнительную пару кавычек вокруг строки («» строка «»), и я должен были заменить все обратные косые черты \ с пустыми символами, а затем он смог разобрать.

Смежные вопросы