2013-11-26 3 views
0

JSON ответ должен выглядеть следующим образом:Не удалось обработать ответ JSON

"{\" syncrequest \ ": {\" пользователь \ ": {\" @ XMLNS: XSI \ ": \" http://www.w3.org/2001/XMLSchema-instance \ "\ "активный \": \ "истинным \", \ "basedataset \": \ "ложного \"}, \ "syncversion \": \ "89 \", \ "syncdata \": [{\" операция \ ": \" INSERT ИЛИ REPLACE \ ", \" table \ ": \" WSInformation \ ", \" rows \ ": [{\" WS_ID \ ": \" 71 \ ", \" WS_ParentOwn \ " : null, \ "WS_Notes \": \ "Примечания \\" для \\ "VistaStore Флот \\" сохранить \ ", \" CC_ID \ ": \" 1 \ ", \" Record_Instance \ ": \" 1 \ ", \" Record_LastModified \ ": \" 2013-11-26T07: 51: 35.203 \ "}]}]}}"

Ответ от сервера со строковым форматом. Когда я преобразовать вышеупомянутую строку в формате JSON с использованием

 JsonObject jObject =new JsonObject(string); 

своей ошибки, получая как несогласованного характер в строке.

Может ли любой орган помочь мне в решении вышеуказанной проблемы.

Заранее спасибо

Под редакцией:

отклика от сервера приходит в виде входного потока.

Таким образом, я использовал для преобразования InputStream в строку с помощью функции:

 IOUtils.readStream(instream); 

Тогда строка ответа должна понравиться:

строка ответ =

«{\ "syncrequest \": {\ "user \": {\ "@ xmlns: xsi \": \ "http://www.w3.org/2001/XMLSchema-instance \", \ "active \": \ "true \", \ "basedataset \": \ "false \ "}, \" syncversion \ ": \" 89 \ "\ "syncdata \": [{\ "операция \": \" INS ERT ИЛИ REPLACE \ ", \" table \ ": \" WSInformation \ ", \" rows \ ": [{\" WS_ID \ ": \" 71 \ ", \" WS_ParentOwn \ ": null, \" WS_Notes \ ": \" Примечания \\ "для \\" VistaStore Флот \\ "сохранить \", \ "CC_ID \": \ "1 \", \ "Record_Instance \": \ "1 \", \ " Record_LastModified \ ": \" 2013-11-26T07: 51: 35,203 \ "}]}]}}"

используя функцию ниже, чтобы сформировать объект JSON, я удаляя двойные кавычки.

res = response.substring (1, response.length() - 1);

и удаление двойных кавычек в строке с использованием функции ниже.

res = response.replace ("\\" "," \ "");

+0

напишите свой код http connetion – SathishKumar

+0

Почему вы избегаете клещей? Парсер не может справиться с этим, поскольку это недействительный JSON. – Baschi

+0

Да, +1 на этом, я не использую «\» на моем JSON, и все в порядке – Poutrathor

ответ

0

Не используйте JsonObject в преобразовании.

 JSONObject jObject = new JSONObject(response); 
    JSONArray jArray = jObject.getJSONArray("syncrequest"); 

Импорт этого org.json.JSONObject;

не com.google.gson.JSONObject;

+0

Импорт org.json.JSONObject только .... –

+0

хорошо импортировать JSONArray тоже :) – Poutrathor

+0

Мы импортируем все необходимые импорт. Здесь проблема в том, что строка содержит двойные кавычки, а затем ее синтаксический анализ для отказа от ответа json. –

0

Я думаю, что это не действительный JSON-объект.

+0

отредактировал вопрос. можете ли вы учесть это. –

+0

Возможно, вам нужно указать что-то вроде этого для чтения потока - setContentType ("application/json")? – none

+0

Возможно, это поможет вам - http://stackoverflow.com/a/13267720/1375027 – none

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