解析包含嵌套对象的JSON

时间:2015-04-17 06:13:24

标签: json angularjs angularjs-ng-repeat

我是angularjs的新手。我在阅读包含嵌套对象的JSON时遇到问题。我可以读取cartItems中的数量,费率和金额,但无法读取商品内的shortDescription。

我的JSON是:

{
"_links": {
    "search": {
        "href": "http://localhost:8080/sportsrest/cartItems/search"
    }
},
"_embedded": {
    "cartItems": [
        {
            "rate": 500,
            "quantity": 1,
            "amount": 500,
            "_embedded": {
                "merchandise": {
                    "shortDescription": "test description1 ",
                    "rate": 500
                }
            },
            "_links": {
                "self": {
                    "href": "http://localhost:8080/sportsrest/cartItems/801"
                }
            }
        },
        {
            "rate": 1000,
            "quantity": 2,
            "amount": 2000,
            "_embedded": {
                "merchandise": {
                    "shortDescription": "test description2",
                    "rate": 1000
                }
            },
            "_links": {
                "self": {
                    "href": "http://localhost:8080/sportsrest/cartItems/802"
                }
            }
        }
    ]
}
} 

在我的html页面中,我正在解析为:

   <tr ng-repeat="cart in cartItems._embedded.cartItems">
                <td>{{cart.quantity}}</td>
                <div ng-repeat="item in cart._embedded.merchandise">
                    <td> {{item.shortDescription}}</td></div>
                <td>{{cart.rate}}</td>
                <td>{{cart.amount}}</td>
            </tr>

任何人都有助于解决我的问题。谢谢。

2 个答案:

答案 0 :(得分:2)

<tr ng-repeat="cart in cartItems._embedded.cartItems">
   <td>{{cart.quantity}}</td>
   <td>{{cart._embedded.merchandise.shortDescription}}</td><td>{{cart.rate}}  </td>
   <td>{{cart.amount}}</td>
</tr>

答案 1 :(得分:1)

cart._embedded.merchandise不是数组。要访问shortDescrption,请执行以下操作:

<tr ng-repeat="cart in cartItems._embedded.cartItems">
  <td>{{cart.quantity}}</td>
  <td>{{cart._embedded.merchandise.shortDescription}}</td>
  <td>{{cart.rate}}</td>
  <td>{{cart.amount}}</td>
</tr>