使用奇怪的字符访问Json字段

时间:2009-11-10 18:22:44

标签: javascript json

我有一个json字符串im转换为具有简单eval(string)的对象;

heres the sample of the json string:
var json = @'
"{ description" : { "#cdata-section" : "<some html here>" } }
';
var item = eval('('+json+')');

我试图像这样访问它

item.description.#cdata-section

我的问题是javascript不喜欢字段名称中的#..是否有办法访问它?

3 个答案:

答案 0 :(得分:11)

item.description['#cdata-section']

答案 1 :(得分:5)

请记住,所有Javascript对象都只是下面的哈希表,因此您始终可以使用下标表示法访问元素。

每当元素名称导致点表示法出现问题(例如使用变量元素名称或带有奇怪字符的名称等)时,只需使用字符串。

var cdata = item.description["#cdata-section"];

答案 2 :(得分:1)

虽然JSON的官方规范仅指定将chars作为字段标识符提供,但是当您将JSON解析为Javascript对象时,您现在受到Javascript标识符的限制。

在Javascript规范中,标识符可以以字母,下划线或$开头。后续字符可以是任何字母,数字,下划线或$。

基本上,#在JSON规范下有效,但在Javascript下无效。