javascript - json数据无法解析的诡异问题
ringa_lee
ringa_lee 2017-04-11 12:07:49
[JavaScript讨论组]

我是nodejs,post请求php服务端,返回下面这个:

{"status":0,"msg":"ok","data":{"data_id":"6|933","data_url":"http:\/\/www.xxx.com\/index.php?m=content&c=index&a=show&catid=6&id=933"}}

这样解析。

let resultObj = JSON.parse(res.text);

但是报错了。

我把返回的json字符串,自己定义变量,又可以解析。拷贝到其他在线json解析也是可以的。证明json字符串完全正确的。

打印返回的字符串大小

console.log(res.text.length);

输出 长度是:148

我用另外一台服务器测试,一样的程序,返回一样的json字符串,返回长度 147.
所以,问题就在这里了。一个是148,一个是147.为啥有这个差距。我当初觉得是编码的问题。可是两个都是utf-8编码。

目前这个错误,各位猜测是什么引起的呢?


补充一下,回答都误解我的问题了。
可以证实,返回的json字符串没有什么语法错误。因为你把字符串拷贝下来,放到别的地方解析是可以解析的。
问题就出在为啥一个返回147、一个返回148。一样的字符串内容,长度却不一样。这一般是编码什么的引起的吧。但是这个又都是utf-8环境。所以想不通这里。问题解决的关键也是这里。

ringa_lee
ringa_lee

ringa_lee

全部回复(2)
迷茫

JSON.stringify json解析为字符串
JSON.parse 字符串解析为json
你方法用错了吗?

var res = {"status":0,"msg":"ok","data":{"data_id":"6|933","data_url":"http:\/\/www.xxx.com\/index.php?m=content&c=index&a=show&catid=6&id=933"}};
var resultObj = JSON.stringify(res);
var obj = JSON.parse(resultObj);
console.log(res, resultObj, obj);
PHP中文网

明明可以。 都没有text这个对象
var a = '{"status":0,"msg":"ok","data":{"data_id":"6|933","data_url":"http://www.xxx.com/index.php?m=content&c=index&a=show&catid=6&id=933"}}';
var json = JSON.parse(a);
console.log(json);

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

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