使用JQuery解析JSON嵌套数组

Parsing JSON nested array using JQuery

本文关键字:嵌套 数组 JSON 解析 JQuery 使用      更新时间:2023-09-26

我有一个API,它将以下JSON值作为字符串返回。

"[
    ["West Baton Rouge test hello world", "1"],
    ["LSU Parking 'u0026 Transportation Services", "2"],
    ["demokljafsk", "3"],
    ["latest", "19"],
    ["Hello check", "20"],
    ["Dinesh Devkota", "21"],
    ["World", "22"],
    ["altered value.", "23"],
    ["Dinesh Devkota", "24"],
    ["Dinesh Devkota", "25"],
    ["Dinesh Devkota", "26"],
    ["Dinesh Devkota", "27"],
    ["Dinesh Devkota", "28"],
    ["Rocking Client", "29"],
    ["West Baton Rouge", "30"],
    ["Test Client", "31"]
]"

我很难用JQuery获取每个数组的第一个值,并用下面的代码将其记录到控制台中。

  $.get("/controller", function (data) {
        console.log("Data Loaded: " + data);
        for (var eachdata in data) {
            console.log(eachdata[0]);
        }
   });

我是JQUERY的新手,想知道什么是正确的方式。

不要将for..in用于阵列

var data = [
    ["West Baton Rouge test hello world", "1"],
    ["LSU Parking 'u0026 Transportation Services", "2"],
    ["demokljafsk", "3"],
    ["latest", "19"],
    ["Hello check", "20"],
    ["Dinesh Devkota", "21"],
    ["World", "22"],
    ["altered value.", "23"],
    ["Dinesh Devkota", "24"],
    ["Dinesh Devkota", "25"],
    ["Dinesh Devkota", "26"],
    ["Dinesh Devkota", "27"],
    ["Dinesh Devkota", "28"],
    ["Rocking Client", "29"],
    ["West Baton Rouge", "30"],
    ["Test Client", "31"]
];
for (var i = 0, len = data.length; i < len; i++) {
   console.log(data[i][0]);
}
// with jQuery
$.each(data, function (index, value) {
   console.log(value[0]);
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

$.get("/controller", function (data) {
    console.log("Data Loaded: " + data);
    for (var eachdata in data) {
        console.log(data[eachdata][0]);
    }
});

问题是for-in返回的是键,而不是值。

您可以这样做:

for (var i=0; i<data.length; i++) {
    console.log(data[i][0]);
}

示例:http://jsfiddle.net/5db2h32g/1/

由于您正在使用jQuery $.each是一个非常有用的工具:

$.each( data, function( arrayIndex, arrayElement) {
    console.log(arrayElement[0]);
});

当它用于数组时,回调的第一个参数是索引,第二个参数是数组元素。

它还创建了一个闭包,当在循环中处理异步代码时,这个闭包非常有用

参考jQuery.each()文档