Android解析JSON数据出错
怪我咯
怪我咯 2017-04-17 11:22:33
[Android讨论组]

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

List<EnvironmentBean> 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

求解。

怪我咯
怪我咯

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

全部回复(2)
天蓬老师

那个"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"
    }
    ]
}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号