我有一个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不喜欢字段名称中的#..是否有办法访问它?
答案 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下无效。