代码之家  ›  专栏  ›  技术社区  ›  Will

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

  •  4
  • Will  · 技术社区  · 15 年前

    我有一个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 回复  |  直到 15 年前
        1
  •  11
  •   Joseph Bui    15 年前
    item.description['#cdata-section']
    
        2
  •  5
  •   friedo    15 年前

    记住,所有的javascript对象都只是下面的哈希表,所以您总是可以用下标符号访问元素。

    只要一个元素名会引起点符号的问题(比如使用变量元素名,或者使用奇怪的字符等),就用一个字符串来代替。

    var cdata = item.description["#cdata-section"];
    
        3
  •  1
  •   Mike Clark    15 年前

    而官方规范 JSON 仅为要作为字段标识符提供的字符指定,当您将JSON解析为一个JavaScript对象时,现在您将受到JavaScript标识符的限制。

    在javascript规范中,标识符可以以字母、下划线或$开头。后面的字符可以是任何字母、数字、下划线或美元。

    因此,基本上,在JSON规范下是有效的,而不是在JavaScript下。