无法解析json响应

时间:2013-11-26 09:06:39

标签: android json

Json的回应应该如下:

  

“{\” syncrequest \ “:{\” 用户\ “:{\” @的xmlns:的xsi \ “:\”http://www.w3.org/2001/XMLSchema-instance \”,\ “活性\”:\ “真\”, \ “basedataset \”:\ “假\”},\ “syncversion \”:\ “89 \”,\ “syncdata \”:[{\ “操作\”:\“INSERT   要么   REPLACE \”,\ “表\”:\ “WSInformation \” \ “行\”:[{\ “WS_ID \”:\ “71 \”,\ “WS_ParentOwn \”:空,\ “WS_Notes \”: \ “注意\\” 的\\“VistaStore   舰队\\ “保存\”,\ “CC_ID \”:\ “1 \”,\ “Record_Instance \”:\ “1 \”,\ “Record_LastModified \”:\“2013-11-26T07:51:35.203 \ “}]}]}}”

来自服务器的响应字符串格式。当我使用

转换json格式的上述字符串
       JsonObject jObject =new JsonObject(string);

它在字符串中出现未终止字符错误。

任何人都可以帮我解决上述问题。

提前致谢

已编辑:

来自服务器的响应采用输入流的形式。

所以,我曾经使用函数将输入流转换为字符串:

     IOUtils.readStream(instream);

然后响应字符串应该是:

字符串响应 =

  

“{\” syncrequest \ “:{\” 用户\ “:{\” @的xmlns:的xsi \ “:\”http://www.w3.org/2001/XMLSchema-instance \”,\ “活性\”:\ “真\”, \ “basedataset \”:\ “假\”},\ “syncversion \”:\ “89 \”,\ “syncdata \”:[{\ “操作\”:\“INSERT   要么   REPLACE \”,\ “表\”:\ “WSInformation \” \ “行\”:[{\ “WS_ID \”:\ “71 \”,\ “WS_ParentOwn \”:空,\ “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(“\\”“,”\“”);

2 个答案:

答案 0 :(得分:0)

不要在转换中使用JsonObject。

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

导入这个org.json.JSONObject;

不是com.google.gson.JsonObject;

答案 1 :(得分:0)

我认为它不是一个有效的JSON对象。

相关问题