0

我可以获得“名称”值,但不能获得“订单”,似乎订单是作为对象而不是数组返回的?

json.json

[{ "ID":"23",
"LastName":"Moe",
"FirstName":"Ronnie",
"Orders":[{"OrderNumber":"11","ItemNumber":"22"},
             {"OrderNumber":"33","ItemNumber":"44"}]}]

我的HTML.html

$.getJSON('json.json',  
    {},
    function (data) {  
     $.each( data, function ( i, val ) {
        var lastname=this.LastName; 
        var firstname=this.FirstName;
        var orders=this.Orders;

        $.each(data.Orders, function(property, value) {
        alert(property + "=" + value);

        //Insert the data to HTML page
        $(".title").append('<li>'+lastname+', '+firstname+'  >'+'</li>');
        $(".title").append('<li>'+orders+'</li>');

        });

    });
    }) 
 });  
4

2 回答 2

2

应该是this.Ordersval.Orders,不是data.Orders

于 2013-09-20T01:32:00.170 回答
1

请参阅下面提到的这个小提琴http://jsfiddle.net/KyleMuir/jcr79/3 - 您正在迭代数据两次。您需要指向正确的数据源。

至于警报,您需要警报对象的属性,而不是整个对象。例如alert(value.OrderNumber)

Alert 将简单地打印出对象的字符串表示形式(“[object object]”)。

Console.log 将记录整个对象。

希望这可以帮助 :)

于 2013-09-20T02:01:46.423 回答