如何在jquery中循环访问JSon数组

时间:2014-06-07 01:24:27

标签: javascript php jquery arrays json

我希望循环遍历json对象中的嵌套数组。当我从PHP函数收到它时,我的JSON看起来像这样:

{
  "min": {
    "type": "select",
    "data": {
      "100000": "120,000",
      "120000": "200.000",
      "130000": "300.000"
    }
  },
  "max": {
    "type": "select",
    "data": {
      "100000": "120,000",
      "120000": "200.000",
      "130000": "300.000"
    }
  }
}

我想要的是一个循环,它通过"数据"中的每个元素。阵列。 我怎样才能做到这一点。我非常确定它必须是 jQuery.each

1 个答案:

答案 0 :(得分:1)

您正在寻找的是JavaScript中的循环非常酷。

for in循环抓住你的属性。给出你的示例JSON对象for for循环看起来像并执行以下操作:

for (var foo in theJSONObject) {
    // foo will be 'min', then 'max'
    // to access the sub-groups of min and max you just need another for in loop
    for (var spam in foo) { // Here we get 'type' and 'data'
         // Here is where JavaScript magic happens!
         theJSONObject[foo][spam];
         // on the first iteration the above line will access theJSONObject variable
         // like this theJSONObject.min.type
         // this is because the [] operators on an object will grab the property named
         // by what is passed in to them
         // example: myWolverineObject['numClaws'] is the same as
         //          myWolverineObject.numClaws
    }

}

或者,您可以使用Object.keys(theJSONObject)来获取可以迭代的对象属性的数组(在这种情况下,它将返回[' min',' max& #39;])。

在jQuery中,您还可以使用$ .each运算符

执行以下操作
$.each (theJSONObject, function (key , value) {
    // The keys would be 'min' and 'max' and values would be 'type' and 'data' 
    // off the bat!!
});

希望这会有所帮助!!