如何遍历JSON字符串

时间:2017-08-15 10:47:03

标签: javascript jquery 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
    }
  }
});

1 个答案:

答案 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];
  // ...
}