开发者问题收集

无需循环直接访问 JSON 中的数组值

2014-01-23
51

我有以下 JSON:

{
  "responseHeader":{
    "params":{
      "facet":"true",
      "fl":"city",
      "facet.mincount":"1",
      "indent":"on",
      "start":"0",
      "q":["*:*",
        "*:*"],
      "wt":"json",
      "rows":"12"}},
  "response":{"numFound":1,"start":0,"docs":[
      {"city":"lathum"}]
  },
  "facet_counts":{
    "facet_fields":{
      "hasphoto":[
        "true",61,
        "false",5],
      "hasvideo":[
        "false",51,
        "true",15],
      "rating_rounded":[
        "0.0",62,
        "10.0",3,
        "8.0",1]},
    "facet_ranges":{}}}

我想知道是否可以根据属性名称选择一个值,在我的例子中,我想选择 hasphoto 中有多少个值为 true ,即 61。 请注意, true 值不一定是 hasphoto 下列出的第一个, truefalse 按出现次数排序。

我想直接获取值而不必循环遍历它....这可能吗?

我试过:

response.facet_counts.facet_fields['hasphoto']['true']

response.facet_counts.facet_fields.hasphoto['true']

但都返回 undefined

1个回答

数组是有序列表,而不是键值存储,因此

response.facet_counts.facet_fields.hasphoto[0] 返回字符串“true”, response.facet_counts.facet_fields.hasphoto[1] 返回数字 61, 等等...

Lance
2014-01-23