Android解析JSON数据出错
怪我咯
怪我咯 2017-04-17 11:22:33
0
2
433

服务器端采用AXIS2 提供Web Service
使用json-lib库实现json数据的转换。
服务器端将数据转换为json的方法如下:

List envList = dbMgr.getEnvironmentInfo(); JSONArray jArray = JSONArray.fromObject(envList); return jArray.toString();

获得JSON数据如下:

{ "return": "[{\"ambient\":2999,\"devLocation\":\"客厅\",\"dewpoint\":29,\"humi\":29,\"id\":647,\"nodeId\":1,\"temp\":29,\"timestamp\":\"2013-12-03 11:39:20.0\"},{\"ambient\":730.28,\"devLocation\":\"客厅\",\"dewpoint\":9.14,\"humi\":52.74,\"id\":646,\"nodeId\":6,\"temp\":19,\"timestamp\":\"2013-11-20 11:05:56.0\"}]" }

在Android客户端中使用org.json库进行解析的时候
出现如下的错误

org.json.JSONException: Unterminated object at character

求解。

怪我咯
怪我咯

走同样的路,发现不同的人生

reply all (2)
Peter_Zhu

那个"return"的val就是个字符串,里面的string拿出来再做为对象去解析

    阿神

    原因应该是反馈的JSON不标准,正常的JSON里面应该是没有中文的,遇到中文信息要转成对应的转义码。
    而且我想吐槽把一整段数组内容放在纯文本里面返回的JSON完全是没有作为JSON的价值……
    推荐格式:

    { "return": [ { "ambient": 2999, "devLocation": "\u5BA2\u5385", "dewpoint": 29, "humi": 29, "id": 647, "nodeId": 1, "temp": 29, "timestamp": "2013-12-03 11:39:20.0" }, { "ambient": 730.28, "devLocation": "\u5BA2\u5385", "dewpoint": 9.14, "humi": 52.74, "id": 646, "nodeId": 6, "temp": 19, "timestamp": "2013-11-20 11:05:56.0" } ] }
      Latest Downloads
      More>
      Web Effects
      Website Source Code
      Website Materials
      Front End Template
      About us Disclaimer Sitemap
      php.cn:Public welfare online PHP training,Help PHP learners grow quickly!