2017-08-15 35 views
-4

我有一个从数据库来一个JSON如何遍历JSON字符串的每个属性

[ 
    { 
    "id": "0001", 
    "type": "donut", 
    "name": "Cake", 
    "ppu": 0.55, 
    "batters": { 
     "batter": [ 
     { "id": "1001", "type": "Regular" }, 
     { "id": "1002", "type": "Chocolate" }, 
     { "id": "1003", "type": "Blueberry" }, 
     { "id": "1004", "type": "Devil's Food" } 
     ] 
    }, 
    "topping": [ 
     { "id": "5001", "type": "None" }, 
     { "id": "5002", "type": "Glazed" }, 
     { "id": "5005", "type": "Sugar" }, 
     { "id": "5007", "type": "Powdered Sugar" }, 
     { "id": "5006", "type": "Chocolate with Sprinkles" }, 
     { "id": "5003", "type": "Chocolate" }, 
     { "id": "5004", "type": "Maple" } 
    ] 
    }, 
    { 
    "id": "0002", 
    "type": "donut", 
    "name": "Raised", 
    "ppu": 0.55, 
    "batters": { 
     "batter": [ 
     { "id": "1001", "type": "Regular" } 
     ] 
    }, 
    "topping": [ 
     { "id": "5001", "type": "None" }, 
     { "id": "5002", "type": "Glazed" }, 
     { "id": "5005", "type": "Sugar" }, 
     { "id": "5003", "type": "Chocolate" }, 
     { "id": "5004", "type": "Maple" } 
    ] 
    } 
] 

我试图用穿越下面的jquery ajax调用方法的上述JSON所有属性

$.ajax({ 
    url: 'myPage.aspx/CallingFunction', 
    type: 'POST', 
    data: '{}', 
    contentType: 'application/json; charset=utf-8', 
    dataType: 'json', 
    success: function(data) { 
    alert(data.d) // showing json is fine 
    var MyData = $.parseJSON(data.d); 
    for (i = 0; i < MyData.length; i++) { 
     //How to travers all the properties defined in JSON 
    } 
    } 
}); 
+0

非常类似的问题https://stackoverflow.com/questions/15993038/how -to-traverse-json-object-locating-particular-property-and-pushing-its-content –

+0

你可以使用嵌套循环或递归来解决遍历数据结构的问题,但是你需要怎么处理数据呢? –

回答

0

Object.keys()可以给你想要的东西:

var i, key, value; 
var keys = Object.keys(MyData); 
for (i = 0; i < keys.length; i++) { 
    key = keys[i]; 
    value = MyData[key]; 
    // ... 
}