1

我在访问 JSON 对象时面临问题:正在接收的 JSON 对象是:

{"71":"Heart XXX","76":"No Heart YYYY"}

我试图分别获得 71 和 72 的值并使用它......

但是我遇到了一些编译时问题: 令牌“.71”上的语法错误,删除此令牌

代码:

var map=$("#jsonText").val();
    alert(map);
    var  obj=jQuery.parseJSON(map);
    alert("JSON ::"+obj.71);

如果正在打印 obj ,我可以查看[Object Object]

那里的任何人都可以帮我找出我做的错误..我知道上面的问题是在SO的许多线程中提出的。下面是我找到的几个线程,但是当我尝试实现它时失败了..

jquery json解析

还尝试使用给出的 Jquery 教程

jQuery JSON

如果键是字符串,它工作正常,但如果它是一个数字,则会出现上述错误......

4

4 回答 4

4

试试这个:

alert("JSON ::" + obj[71]);

“71”不是有效的属性标识符:标识符应该以字母、下划线或美元符号开头。您可以改用方括号来避免此问题。

注意:方括号之间的所有内容都将转换为字符串。甚至函数、DOM 元素或正则表达式:它们都使用它们的toString方法或它们的超类'进行转换toString

于是71就有了转换成"71"。如果你想要更多的性能,你可以直接使用后者。如果你不需要它,你可以只用71.

于 2012-09-07T09:34:14.563 回答
4

改为使用

alert("JSON ::"+obj["71"]);
于 2012-09-07T09:34:40.477 回答
0

根据规则或javascriptaidentifier不应以数字开头,因此如果它以数字开头或包含空格和其他特殊字符,那么您应该使用[]运算符而不是.运算符来访问它,
因此obj.71无效obj["71"]

于 2012-09-07T09:36:30.227 回答
0

尝试使用这个网站:

http://json.parser.online.fr/

于 2012-09-07T10:54:12.363 回答