在Angular应用程序中访问JSON数据(多个嵌套数组)

时间:2019-06-12 19:01:33

标签: json angular

如何从给定对象访问“行”数据? 这是指向api-https://sportsbook.draftkings.com/api/odds/v1/leagues/3/offers/gamelines.json

的链接
<td>{{data.name }}</td>
        <td>{{data.homeTeamName }}</td>
        <td>{{data.awayTeamName}}</td>
        <td>{{data.startDate }}</td>
        <!--<td>{{data.offers[1].label }}</td>-->
        <td>{{data.offers.outcomes[2].line }}</td>

我得到

ERROR TypeError: Cannot read property '2' of undefined

我尝试了上面的代码来访问结果对象中的行,因为它给了我下面的错误

{{1}}

4 个答案:

答案 0 :(得分:1)

提供的Api响应包含3个嵌套数组。因此,在访问它们的值时必须考虑它们。根据您在以下解决方案阵列中拥有的物品数量,会有所不同。在您的示例中,您正在访问数组“事件”,“提供”,“结果”的第一项的值。

在这种情况下,您可以尝试

<td>{{data.events[0].offers[0].outcomes[0].line}} </td>

答案 1 :(得分:0)

考虑到每个嵌套的托盘中只有一个项目,则可以按以下方式访问a_sort = a[do.call(order, a), ] row.names(a_sort) = NULL c_sort = c[do.call(order, c), ] row.names(c_sort) = NULL identical(a_sort, c_sort) # [1] TRUE

line

如果每个嵌套数组中有n个对象,则可以这样做

let data = {
    "events": [{
        "id": 153502679,
        "name": "Green Bay Packers @ Chicago Bears",
        "homeTeamName": "CHI Bears",
        "awayTeamName": "GB Packers",
        "startDate": "2019-09-06T00:20:00.0000000Z",
        "offers": [{
            "id": "1-2160521227",
            "label": "Point Spread",
            "outcomes": [{
                "id": "1-2568051855",
                "label": "GB Packers",
                "line": "+3.5000",
                "oddsAmerican": "-110",
                "oddsDecimal": 1.9100,
                "oddsFractional": "10/11",
                "participant": "GB Packers"
                
            }]
        }]
    }]
}

console.log(data.events[0].offers[0].outcomes[0].line);

答案 2 :(得分:0)

您似乎没有访问商品阵列中的数据。

请尝试以下代码来访问事件,要约和结果:

data.events[0].offers[0].outcomes[0].line

希望它能起作用!

答案 3 :(得分:-5)

您应该尝试

 <td>{{data.offers.outcomes.line }}</td>