服务器端采用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
求解。
那个"return"的val就是个字符串,里面的string拿出来再做为对象去解析
原因应该是反馈的JSON不标准,正常的JSON里面应该是没有中文的,遇到中文信息要转成对应的转义码。
而且我想吐槽把一整段数组内容放在纯文本里面返回的JSON完全是没有作为JSON的价值……
推荐格式: