首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在javascript中解析具有特殊属性的json

问在javascript中解析具有特殊属性的json
EN

Stack Overflow用户
提问于 2013-12-06 17:06:38
回答 1查看 159关注 0票数 0

我有一个如下的json

代码语言:javascript
复制
"facet_counts": {
     "facet_pivot": {
      "title,host,content,anchor,id": [
        {
          "field": "title",
          "value": "biglobe",
          "count": 192
        }
      ]
}}

像往常一样,我会像这样解析它:

代码语言:javascript
复制
var json = JSON.parse(xhr.responseText);
var field = json.facet_counts.facet_pivot.title,host,content,anchor,id[0].field;

但这是错误的。

你能告诉我如何解析属性"title,host,content,锚,id“吗?

EN

回答 1

Stack Overflow用户

发布于 2013-12-06 17:08:01

有两种方法可以访问对象的属性:

  • obj.prop -点括号- notation
  • obj['prop']符号

当JS解释器被属性名称的某些部分(在您的示例中为,)搞混时,您可以使用括号表示法来访问该属性:

代码语言:javascript
复制
var json = JSON.parse(xhr.responseText); 
var field = json.facet_counts.facet_pivot['title,host,content,anchor,id'][0].field;

This answer很好地总结了标识符命名限制:

标识符必须以$、_或“Uppercase letter (Lu)”、“Lowercase letter (Ll)”、“Titlecase letter (Lt)”、“Modifier letter (Lm)”、“Other letter (Lo)”或“Letter number (Nl)”类别中的任何字符开头。

字符串的其余部分可以包含相同的字符,以及任何U+200C零宽度非拼接字符、U+200D零宽度拼接字符以及“Non-spacing mark (Mn)”、“Spacing combining mark (Mc)”、“Decimal digit number (Nd)”或“Connector punctuation (Pc)”类别中的字符。

属性可以使用任何字符串作为名称,并且在字符串与上面的描述不匹配的情况下,属性只能使用方括号表示法。如果字符串确实与描述匹配,则括号表示法和点表示法可以互换使用,尽管通常点表示法更适合使用,因为它不太冗长。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20419955

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档