为了账号安全,请及时绑定邮箱和手机立即绑定

JSON 解析

var jsondata = {"staff":[{"name":"红旗","age":"20"},{"name":"郭靖","age":"100"}]};

alert(jsondata.staff[0].name)

undefined

var jsondata = {"staff":[{"name":"红旗","age":"20"},{"name":"郭靖","age":"100"}]};

var jsonobj = parse('(' + jsondata +')');

alert(jsonobj.staff[0].name);

VM649:3 Uncaught ReferenceError: parse is not defined

    at <anonymous>:3:1

    at Object.InjectedScript._evaluateOn (<anonymous>:895:140)

    at Object.InjectedScript._evaluateAndWrap (<anonymous>:828:34)

    at Object.InjectedScript.evaluate (<anonymous>:694:21)

为什么没有第二句是对的,有了第二句就错了

正在回答

3 回答

第一个错误:

var jsondata = {"staff":[{"name":"红旗","age":"20"},{"name":"郭靖","age":"100"}]};

这里你声明的是对象,不是JSON字符串!

var jsondata = '{"staff":[{"name":"红旗","age":"20"},{"name":"郭靖","age":"100"}]};


第二个错误:

var jsonobj = parse('(' + jsondata +')');

这里你要调用的是JSON.parse()方法,而且多余了一对括号!

var jsonobj = JSON.parse(jsondata);


1 回复 有任何疑惑可以回复我~
#1

__Ling__ 提问者

还是概念没搞清楚。3q
2015-12-18 回复 有任何疑惑可以回复我~

如果obj本来就是一个JSON对象,那么使用eval()函数转换后(哪怕是多次转换)还是JSON对象,但是使用parse()函数处理后会有问题(抛出语法异常)

0 回复 有任何疑惑可以回复我~

浏览器版本的问题?

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Ajax全接触
  • 参与学习       224850    人
  • 解答问题       663    个

本课程通过一个案例,讲解Ajax的相关概念原理实现方式和应用

进入课程
意见反馈 帮助中心 APP下载
官方微信