2014-09-23 3 views
0

В моем коде я пытаюсь получить доступ к некоторому возврату json с сервера. Но я не могу конвертировать json из сервера в JsonObject. Вот мой код,Значение типа java.lang.String не может быть преобразовано в JSONObject

result = post.getHttpData(Constants.UrlDepartureCity); 
catchLog(result); 
JSONObject obj=new JSONObject(result); 

Я использую свой собственный catchLog для печати json return в журнале.

09-23 14:53:59.940: I/DepartureCityAsync(23313): 
{"status":"1","departure_city":[ 
{"entity_id":"1","field_depature_city_tid":"1","entity_type":"node"}, 
{"entity_id":"8","field_depature_city_tid":"1","entity_type":"node"}, 
{"entity_id":"12","field_depature_city_tid":"1","entity_type":"node"}, 
{"entity_id":"5","field_depature_city_tid":"2","entity_type":"node"}, 
{"entity_id":"9","field_depature_city_tid":"2","entity_type":"node"}, 
{"entity_id":"17","field_depature_city_tid":"2","entity_type":"node"}, 
{"entity_id":"6","field_depature_city_tid":"3","entity_type":"node"}, 
{"entity_id":"7","field_depature_city_tid":"5","entity_type":"node"}]} 

И я скопировать результат и проверить, что JSon возвращение в http://jsonlint.com/. Ошибка отсутствует, синтаксис также правильный. Но когда я пытаюсь преобразовать его в JsonObject, я получил эту ошибку.

09-23 14:53:59.940: W/System.err(23313): org.json.JSONException: Value  of type java.lang.String cannot be converted to JSONObject 

Как я могу решить эту проблему? Пожалуйста. Thanks

+0

Напишите код для метода ловушки регистрации –

+0

@ Rahul Gupta Я уже написал код для журнала catch – SAWAUNG

+0

Я имею в виду метод catchLog (result), его код реализации. Вы передаете ему результат –

ответ

1

Я думаю, что в вашем возвращении могут быть пустые символы. Измените его на JSONObject obj = new JSONObject (result.trim());

+0

@ Rishav Sengupta, ваш ответ работает на меня. Благодарю. – SAWAUNG

+0

@SAWAUNG :) то, пожалуйста, примите ответ и закройте вопрос. –

0

Я думаю, что ваш формат json неверен или имеет небольшую ошибку. С this link вы можете найти решение.

0
final TextView res=(TextView)findViewById(R.id.res); 

    try 
    { 
     HttpClient client=new DefaultHttpClient(); 
     HttpPost request=new HttpPost("http://192.168.0.30/test.js"); 
     HttpResponse response=client.execute(request); 
     HttpEntity entity=response.getEntity(); 
     res.setText(EntityUtils.toString(entity)); 
    } 
    catch(Exception e) 
    { 
     res.setText(e.toString()); 
    } 

вот мой пример кода, он работает для меня ... для того же самого json, что и вы. Можете ли вы показать мне свой код, как вы получите ответ. Я не получил метод getHttpData(), который вы использовали.

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