gpt4 book ai didi

javascript - 从 JSON 在 Javascript 中创建动态关联数组

转载 作者:行者123 更新时间:2023-11-29 20:26:30 25 4
gpt4 key购买 nike

听起来比实际情况要复杂得多。

所以在 Perl 中,你可以这样做:

foreach my $var (@vars) {
$hash_table{$var->{'id'}} = $var->{'data'};
}

我有一个 JSON 对象,我想做同样的事情,但使用 jQuery 中的 javascript 关联数组。

我试过以下方法:

hash_table = new Array();

$.each(data.results), function(name, result) {
hash_table[result.(name).extra_info.a] = result.(name).some_dataset;
});

其中数据是从 $.getJSON 调用中获取的 JSON 对象。它看起来或多或少像这样(我的 JSON 语法可能有点偏差,抱歉):

{
results:{
datasets_a:{
dataset_one:{
data:{
//stuff
}
extra_info:{
//stuff
}
}
dataset_two:{
...
}
...
}
datasets_b:{
...
}
}
}

但每次我这样做时, Firebug 都会抛出以下错误:

“XML 过滤器应用于非 xml 数据”

最佳答案

我认为您可以将 JSON 响应用作关联数组。因此,您应该能够直接进入并使用 JSON。

假设你收到了上面的例子:

$('result').innerHTML = data['results']['dataset_a']['dataset_two']['data'];
// Or the shorter form:
$('result').innerHTML = data.results.dataset_a.dataset_two.data;

我知道我还没有对此进行测试,但是将方括号与变量一起使用比使用圆括号加上带有点访问器的名称更安全。

你的例子失败了,因为我刚刚发现了一些复杂的逻辑。

$.each(data.results), function(name, result) {
hash_table[result.(name).extra_info.a] = result.(name).some_dataset;
});

现在,foreach 循环遍历变量 data.results 以查找深度为 1 的内部元素。它找到的项目将通过项目的键提供给 lambda。也就是说,第一个结果将是 name = "datasets_a"item = object。一直跟着我?现在您访问返回的散列,即 item 中的对象,就好像它在 name 中具有子键 ...“datasets_a”。但是等等,这对象!

如果一切都失败了...将结果 JSON 动态写入文本字段并确保其格式正确。

关于javascript - 从 JSON 在 Javascript 中创建动态关联数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/233622/

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