gpt4 book ai didi

javascript - 使用 jQuery 读取 JSON 并通过 ID 匹配字段

转载 作者:行者123 更新时间:2023-12-02 16:28:15 25 4
gpt4 key购买 nike

我目前正在获取包含两个对象的 JSON:一个是 COLUMNS,另一个是 DATA。其中每个都是分别具有适当列名和匹配数据的数组。

这是 JSON:

{  
"COLUMNS":[
"NUM",
"USERID",
"NAME",
"YEARCREATED",
"LASTCONTACTED",
"RELATIONSHIP"
],
"DATA":[
[
8,
333,
"Joe Smith",
2015,
"January, 19 2015 00:00:00",
"30 Days"
]
]
}

我想做的是使用 jQuery 迭代 DATA 数组(当前数组中只有一个对象):

var jsonSource = {"COLUMNS":["NUM","USERID","NAME","YEARCREATED","LASTCONTACTED","RELATIONSHIP"],"DATA":[[8,333,"Joe Smith",2015,"January, 19 2015 00:00:00","30 Days"]]} 

$.each(jsonSource, function( COLUMNS, DATA ) {
console.log( jsonSource );
});

我在控制台中返回的是整个 JSON 树。

如何使输出成为“Joe Smith”(不带引号)?

最佳答案

DATA 是包含实际数据的列数组,因此现在只需忽略 COLUMNS

$.each(jsonSource.DATA, function( COLUMNS, DATA ) {
console.log( jsonSource );
});

现在查看jQuery.each在文档中您可以看到回调方法获取 indexInArrayvalue 作为参数,因此让我们更新回调。请记住,indexInArray 与 DATA 中存在多少行有关,而不是与 COLUMNS 中的 NAME 等位置相关。

$.each(jsonSource.DATA, function( indexInArray, value ) {
console.log( jsonSource );
});

现在我们不再输出整个 JSON 树,而是使用每个树的特定迭代。由于我们知道 NAME 是该行中的第三项,因此我们现在只需对其进行硬编码。

$.each(jsonSource.DATA, function( indexInArray, value ) {
console.log( value[2] );
});

现在假设不能保证 COLUMNS 的顺序。我们总是需要NAME,但它可以是任何列。

$.each(jsonSource.DATA, function( indexInArray, value ) {
console.log( value[jsonSource.COLUMNS.indexOf('NAME')] );
});

当然,这是一条复杂的线,因此在真实的程序中您可能会想要这样的东西。

function getColumnIndex(columns, key) {
return columns.indexOf(key)
}

var nameIndex = getColumnIndex(jsonSource.COLUMNS, 'NAME');

$.each(jsonSource.DATA, function( indexInArray, value ) {
console.log( value[nameIndex] );
});

关于javascript - 使用 jQuery 读取 JSON 并通过 ID 匹配字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28530405/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com