js解析json字符
这是真真遇到的问题,后台给我返回的是json的字符串:
{"status":410,"data":"","message":"\u672a\u586b\u5b8c\u5185\u5bb9"}
一、JSON字符串转换为JSON对象
首先想到的是eval,想着直接eval(data),最后出现的报错,然后就茫然,
后来查找了方法:注意这里的写法,要多了一对带单引号的小括号;
var obj = eval('(' + str + ')');
最后解决了问题。
得到了正常的json对象:
{ "status": 200, "data": { "emailUrl": "mail.qq.com" }, "message": "邮件已发送至您的邮箱,请登录验证" }
拓展:
或者
var obj = str.parseJSON(); //由JSON字符串转换为JSON对象
或者
var obj = JSON.parse(str); //由JSON字符串转换为JSON对象
然后,就可以这样读取:
Alert(obj.name);
Alert(obj.sex);
特别注意:如果obj本来就是一个JSON对象,那么使用eval()函数转换后(哪怕是多次转换)还是JSON对象,但是使用parseJSON()函数处理后会有问题(抛出语法异常)。
只有在泥泞的道路上才能留下脚印