3

抱歉,如果这是一个非常基本的问题,但我找不到与我要解决的问题类似的任何示例。

有人可以解释一下为什么我无法在以下代码中访问嵌套的元素数组,以及如何访问该数组中的元素吗?从下面的 json 中,我无法从第二个结果中找到“Items”数组。

正在返回以下 json:

{
    "d": {
        "results": [
            {
                "__metadata": {
                    "uri": "...",
                    "type": "..."
                },
                "__index": 1,
                "ID": "someID1",
                "Name": "Some Name 1"
            },
            {
                "__index": 2,
                "Items": [
                    {
                        "__metadata": {
                            "uri": "...",
                            "type": "..."
                        },
                        "ID": "itemID2_1",
                        "Name": "Item 2_1"
                    }
                ]
            },
            {
                "__index": 3,
                "Items": [
                    {
                        "__metadata": {
                            "uri": "...",
                            "type": "..."
                        },
                        "ID": "itemID3_1",
                        "Name": "Item 3_1"
                    }
                ]
            },
            ...

玉器布局如下:

- var results=records, col_type='even';
table#results(style="border-collapse:collapse;")
  tr
    th.result-header Index
    th.result-header ID
    th.result-header Name
  - each r in results
    - col_type=col_type=='even' ? 'odd' : 'even'
    tr.result-row
      - if (!r.Items)
        td(class='result-col-'+col_type,style="border-left:1px solid black")
          #{r.__index}
        td(class='result-col-'+col_type,style="border-left:1px solid black")
          #{r.ID}
        td(class='result-col-'+col_type,style="border-left:1px solid black")
          #{r.Name}
      - else
        td(class='result-col-'+col_type,style="border-left:1px solid black")
          #{r.__index}
        - each i in r.Items
          td(class='result-col-'+col_type,style="border-left:1px solid black")
            #{i.ID}
          td(class='result-col-'+col_type,style="border-left:1px solid black")
            #{i.Name}
4

2 回答 2

0

这里的问题是您的 JSON 是这种格式

{
  "d": { 
     "results": [
        ...
      ]

所以你需要在你的玉模板中改变这部分

- each r in results
  - col_type=col_type=='even' ? 'odd' : 'even'

对此,

- each r in results['d']['results']
  - col_type=col_type=='even' ? 'odd' : 'even'

这样,您的循环将通过每个数组项。

于 2011-09-06T18:39:19.257 回答
0

所以我遇到了同样的问题。我的解决方案是:

- each r in results
  - each i in r.Items
     "... do stuff with i"
于 2018-11-20T09:08:55.980 回答