【问题标题】:How to read JSON data from view如何从视图中读取 JSON 数据
【发布时间】:2016-10-18 17:36:04
【问题描述】:

如何从我的视图中读取多个 JSON 值?

我有一个 JSON 文件,其结构如下:

{
"Cat": {
    "items": [
        {
         "posa": "a",
         "posb": "b",
         "posc": "c",
         "posd": "d",
         "pose": "e",
         "posf": "f"
        }
   ]
  },
"Dog": {
   "items" : [
       {
        "posa": "1",
        "posb": "2",
        "pos": "3",
        "posd": "4",
        "pose": "5",
        "posf": "6""
       }
    ]
}

}

我怎样才能调用这个?

例如,如果我有

{
    "cat": {
        "items": [
            {
                "pos": "37.622882;55.755202;0",     
            }
        ]
    },
}

在我看来,我可以通过执行以下操作来调用它。

position="{pos}" 

如果我想调用所有 6 个职位怎么办。我应该这样做:

position = "{posa,posb.posc,posd,pose,posf}"?

我怎样才能得到所有这 6 个值?

【问题讨论】:

  • 你使用的是什么框架,采用这样的符号?

标签: javascript json html model-view-controller view


【解决方案1】:

var obj = {
  "Cat": {
    "items": [{
      "posa": "a",
      "posb": "b",
      "posc": "c",
      "posd": "d",
      "pose": "e",
      "posf": "f"
    }, {
      "posa": "1",
      "posb": "2",
      "posc": "3",
      "posd": "4",
      "pose": "5",
      "posf": "6"

    }]
  },
  "Dog": {
    "items": [{
      "posa": "a",
      "posb": "b",
      "posc": "c",
      "posd": "d",
      "pose": "e",
      "posf": "f"
    }, {
      "posa": "1",
      "posb": "2",
      "posc": "3",
      "posd": "4",
      "pose": "5",
      "posf": "6"

    }]
  }
}

for (var k in obj) {
  obj[k].itemStrs = $.map(obj[k].items, function(item) {
    return ($.map(item, function(v) {
      return v;
    })).join()
  })
}


console.log(obj);
/*


{
  "Cat": {
    "items": [{
      "posa": "a",
      "posb": "b",
      "posc": "c",
      "posd": "d",
      "pose": "e",
      "posf": "f"
    }, {
      "posa": "1",
      "posb": "2",
      "posc": "3",
      "posd": "4",
      "pose": "5",
      "posf": "6"
    }],
    "itemStrs": ["a,b,c,d,e,f", "1,2,3,4,5,6"]
  }
}
*/
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

【讨论】:

  • 请参考我在问题中编辑的代码。我忘了有 2 个数组和 2 个对象
【解决方案2】:

看看这里的 Object.keys() 方法:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys 你可以像这样使用它:

var cats =  { ...Your posted data structure... },
    positions = Object.keys(cats.items[index]),
    position = '{' + positions.join(',') + '}';

【讨论】:

  • 你好。请查看我在问题中更新的代码。谢谢
猜你喜欢
  • 1970-01-01
  • 2018-07-24
  • 1970-01-01
  • 2016-04-26
  • 2020-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多