2013-10-04 24 views
0

我想解析包含少数数组和一些键值对的JSON字符串。我现在能够从一个数组中获取值,但我想从另一个数组中获取值。数组有相同的键,但我不知道如何从第二个数组中获取数据。使用jQuery从JSON字符串获取值

我的jQuery脚本看起来像这样

$("a").click(function() { 
    var page = $(this).text(); 
    console.log(page); 
    $.post("/services/gallery/getimage", {"path[]":[<%=path %>], "page": page}, function(data){ 
     var length = data.previews.length; 
     console.log(length); 
     var html = ""; 
     for(var i = 0; i < length; i++){ 
      $.each(data.previews[i], function (index, value) { 
       html+= "<a href=\""+value+"\"><img src=\""+value+"\" alt=\""+index+"\" /></a>"; 
       console.log("index: "+index); 
       console.log("value: "+value); 
       console.log(data.heights[i].index); 
      }); 
     } 

     $("#gallery").html(html); 
    }); 
}); 

我也试过这个console.log(data.heights[i].index);的一些修改,但仍然没有可用的结果。

控制台输出

1 
15 

index: index1 
value: /some/path 
undefined 

index: index2 
value: /some/paht 
undefined 

和JSON字符串看起来像

{ 
    "previews": [ 
     { 
      "index1": "/some/path" 
     }, 
     { 
      "index2": "/some/path" 
     } 
    ], 
    "heights": [ 
     { 
      "index1": "67" 
     }, 
     { 
      "index2": "103" 
     } 
    ] 
} 

我将有更多的阵列,相同指数因此这将是巨大的,如果它会是可能的把它解析为一个。感谢您的帮助

编辑:属性的名称是动态的而不是静态的。它可以是任何,不只是索引1,索引2,...

回答

1

您正在使用.index当您应该使用[index]查找heights数组中的对象中的数据。所以这条线:

console.log(data.heights[i].index); 

变为:

console.log(data.heights[i][index]); 
+0

谢谢!我会尽快接受你的回答。 – Jakolcz