使用AngularJS使用数组解析JSON文件

使用AngularJS使用数组解析JSON文件,json,angularjs,angularjs-ng-repeat,arrays,Json,Angularjs,Angularjs Ng Repeat,Arrays,我不知道如何在AngularJS的帮助下迭代这个JSON数据 { { "1590": { "id": "1590", "id_site": "0", "id_merk": "7", "id_type": "209", "uitvoering": "Blue Lease Execut. HYbrid4 2.0 HDi 4D 147kW" }, { "1590": { "i

我不知道如何在AngularJS的帮助下迭代这个JSON数据

{       
   {
      "1590": {
      "id": "1590",
      "id_site": "0",
      "id_merk": "7",
      "id_type": "209",
      "uitvoering": "Blue Lease Execut. HYbrid4 2.0 HDi 4D 147kW"
   },
   {
      "1590": {
      "id": "1590",
      "id_site": "0",
      "id_merk": "7",
      "id_type": "209",
      "uitvoering": "Blue Lease Execut. HYbrid4 2.0 HDi 4D 147kW"
   }
}
这就是我现在在Angular应用程序中的内容:

服务:

看法

当前该视图未显示任何结果。我不知道如何处理数组中的不同对象


任何帮助都将不胜感激。

您不能在JSON上迭代,因为它不是表示为数组而是表示为对象

设置大括号,如:

[
  {
    "1590": {
      "id": "1590",
      "id_site": "0",
      "id_merk": "7",
      "id_type": "209",
      "uitvoering": "Blue Lease Execut. HYbrid4 2.0 HDi 4D 147kW"
    }
  },
  {
    "1590": {
      "id": "1590",
      "id_site": "0",
      "id_merk": "7",
      "id_type": "209",
      "uitvoering": "Blue Lease Execut. HYbrid4 2.0 HDi 4D 147kW"
    }
  }
]
第二个选项是关键值表示:

{
  "1590": {
    "id": "1590",
    "id_site": "0",
    "id_merk": "7",
    "id_type": "209",
    "uitvoering": "Blue Lease Execut. HYbrid4 2.0 HDi 4D 147kW"
  },
  "1591": {
    "id": "1591",
    "id_site": "0",
    "id_merk": "7",
    "id_type": "201",
    "uitvoering": "Blue Lease Execut. HYbrid4 2.0 HDi 4D 142kW"
  }
}
所以HTML应该是这样的:

<select data-ng-model="selectedItem" 
        data-ng-options="key as value.uitvoering  for (key , value) in brands">
   <option value="">-- Selecteer een merk --</option>
</select>

助手
您可以使用此联机帮助程序:

我为您编写了一个示例:


首先,您提供的json不是有效的json。根据结构,您可能必须在ng选项中更改表达式。然后,我建议您将$http承诺返回给controller,并在执行ajax之后解析结果。最后,将结果渲染到select元素。我希望这对你有帮助。如果您想了解select选项的更多细节,还可以查看api文档。

与{{}的json看起来不一样,您是否正确编写了json的外观?是的,这实际上是我从服务器请求json时json的外观。所以我不能自己改变输出。
{
  "1590": {
    "id": "1590",
    "id_site": "0",
    "id_merk": "7",
    "id_type": "209",
    "uitvoering": "Blue Lease Execut. HYbrid4 2.0 HDi 4D 147kW"
  },
  "1591": {
    "id": "1591",
    "id_site": "0",
    "id_merk": "7",
    "id_type": "201",
    "uitvoering": "Blue Lease Execut. HYbrid4 2.0 HDi 4D 142kW"
  }
}
<select data-ng-model="selectedItem" 
        data-ng-options="key as value.uitvoering  for (key , value) in brands">
   <option value="">-- Selecteer een merk --</option>
</select>