Javascript Jquery多维Json解析

Javascript Jquery多维Json解析,javascript,jquery,json,Javascript,Jquery,Json,嘿,下面是我的json示例数据,我擅长php,但对jquery不熟悉 "data":{ "cipher":"true", "size":[ "2.2 Mb", "6.11 Mb", "9.25 Mb", "18.49 Mb", "23.79 Mb", ], "prop":[ "smal

嘿,下面是我的json示例数据,我擅长php,但对jquery不熟悉

   "data":{
        "cipher":"true",
        "size":[
            "2.2 Mb",
            "6.11 Mb",
            "9.25 Mb",
            "18.49 Mb",
            "23.79 Mb",
        ],
        "prop":[
            "small",
            "small",
            "small",
            "medium",
            "medium",
        ]
    }
我希望jquery中的php代码如下所示

$i = 0
foreach($arr[data] as $test){
    echo $arr[data][size][$i];
    echo $arr[data][prop][$i];
    $i++;
}
我试过下面的方法

if(typeof response =='object'){
    console.log("valid json");
    $.each(response.data, function(i, object) {
        $.each(object, function(property, value) {

        });
    }); 
}

请不要为此使用jQuery。jQuery是一种用于HTML DOM操作的工具。您可以只使用常规JavaScript

您可以对数据执行
for
循环,也可以对数组使用
.forEach

arr.data.size.forEach(function (value, index) {
  console.log('arr.data.size[' + index+ ']=', value)
  console.log('arr.data.prop[' + index+ ']=', arr.data.prop[index])
})
这将输出:

arr.data.size[0]= 2.2 Mb
arr.data.prop[0]= small
arr.data.size[1]= 6.11 Mb
arr.data.prop[1]= small
arr.data.size[2]= 9.25 Mb
arr.data.prop[2]= small
arr.data.size[3]= 18.49 Mb
arr.data.prop[3]= medium
arr.data.size[4]= 23.79 Mb
arr.data.prop[4]= medium

请不要为此使用jQuery。jQuery是一种用于HTML DOM操作的工具。您可以只使用常规JavaScript

您可以对数据执行
for
循环,也可以对数组使用
.forEach

arr.data.size.forEach(function (value, index) {
  console.log('arr.data.size[' + index+ ']=', value)
  console.log('arr.data.prop[' + index+ ']=', arr.data.prop[index])
})
这将输出:

arr.data.size[0]= 2.2 Mb
arr.data.prop[0]= small
arr.data.size[1]= 6.11 Mb
arr.data.prop[1]= small
arr.data.size[2]= 9.25 Mb
arr.data.prop[2]= small
arr.data.size[3]= 18.49 Mb
arr.data.prop[3]= medium
arr.data.size[4]= 23.79 Mb
arr.data.prop[4]= medium

此操作不需要Jquery。简单的迭代应该可以工作--

演示--


检查控制台中的结果。

此操作不需要Jquery。简单的迭代应该可以工作--

演示--


检查控制台中的结果。

您应该使用下划线()或Lodash()之类的库来代替jQuery,它们有一个
zip
方法,可以实现您想要的功能

(jQuery的目的主要是操作DOM,下划线/Lodash的目的主要是操作数据。)


请参见此处的演示:

您应该使用下划线()或Lodash()之类的库来代替jQuery,它们有一个
zip
方法,可以实现您想要的功能

(jQuery的目的主要是操作DOM,下划线/Lodash的目的主要是操作数据。)


请参见此处的演示:

您可能想解释为什么他不应该使用jQuery,而应该使用另一个lib@NicolasLeThierryd我认为这是一个如何改进你答案的建议,不是请求评论。您可能想解释为什么他不应该使用jQuery,而是另一个lib@NicolasLeThierryd“Enniquin我认为这是一个如何改进答案的建议,而不是一个征求意见的请求。我想要在单循环中..接受jos de jong答案..+1 anywa
for(..in..
可能会有一些问题。我宁愿避免它。@TimSeguine:它只有在错误的地方使用才会有问题。尽管如此,对于循环(对于(i=0;i@RahulB如果有人修改了Array.prototype(这是合法的,但可能是不明智的)最后,你可以迭代那些实际上不在数组中的东西。它可能是大多数时候发生的unLKIKE,但是我不想考虑它。@ TimeGueNe:这样会影响数组本身。因此,如果你用任何其他循环方法进行迭代,它们都会失败,而不仅仅是上面的方法。我希望在单循环中…接受JoS de。jong anywa
for(…in.)
可能会有一些问题。我宁愿避免它。@TimSeguine:只有在错误的地方使用它才会有问题。不过,对于循环(for(I=0;i@RahulB如果有人修改了Array.prototype(这是合法的,但可能是不明智的)最后,你可以迭代那些实际上不在数组中的东西。它可能是大多数时候发生的unLKIKE,但是我不想考虑它。@ TimeGueNe:这样会影响数组本身。因此,如果你用任何其他循环方法进行迭代,它们都会失败,而不仅仅是接近。谢谢。有一些非常好的功能。ns可用于数组:
forEach
map
filter
slice
,等等。您可以通过谷歌搜索它。要在对象的键上循环,可以使用
object.keys(array.data)。forEach(…)
@JosdeJong我对你的观点很感兴趣。你是否认为
jQuery
特别不适合解析
JSON
,或者你更喜欢纯
JavaScript
而不是任何
lib
。谢谢。数组有一些非常好的函数:
forEach
map
filtere> ,
slice
,等等…你可以用谷歌搜索它。要循环对象的键,你可以使用
object.keys(array.data).forEach(…)
@JosdeJong我对你的观点很感兴趣。你认为
jQuery
尤其不适合解析
JSON
,还是你更喜欢纯
JavaScript
而不是任何
lib
[["2.2 Mb", "small"], ["6.11 Mb", "small"], ["9.25 Mb", "small"], ["18.49 Mb", "medium"], ["23.79 Mb", "medium"]]