json多维数组$ .each

时间:2013-09-20 01:27:26

标签: jquery json multidimensional-array getjson

我可以获取'name'值而不是'Orders'似乎Orders被返回为object而不是Array?

json.json

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

myHTML.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>');

        });

    });
    }) 
 });  

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

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

警报只会打印出对象的字符串表示形式(“[object object]”)。

Console.log将记录整个对象。

希望这会有所帮助:)