首页 > 代码库 > js解析json字符

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()函数处理后会有问题(抛出语法异常)。

 

js解析json字符