gpt4 book ai didi

javascript - 从 json 响应创建动态变量

转载 作者:行者123 更新时间:2023-11-30 13:36:45 25 4
gpt4 key购买 nike

我的 JSON 响应如下所示:

{"sample":[{"id":"2","name":"branch name"},{"id":"3","name":"branch name 2"}]}

我的函数是这样的:

function getJSONObjects(){
$.getJSON("http://localhost/api/branches",
function(data){
$.each(data.sample, function(i,item){
var loc = "branch";
eval("var " + loc + item.id + "=123;");
alert(loc + item.id);
});
});
}

我的想法是创建 branch + id 对象,这样我就可以用它做一些事情(在 map 上创建标记),所以我试着给它分配任何值,看看它是否有效。

我希望 branch2branch3 都提醒 123 所以我有一些事情可以开始。但目前这会提醒 branch2 和 branch3 而不是 123。

我在创建动态变量/对象方面经验不足,谁能告诉我我做错了什么,或者可以用另一种方法来解决这个问题?

最佳答案

不知道你想在这里做什么:

eval("var " + loc + item.id + "=123;"); // eval is EVIL
alert(loc + item.id); // just creates a string...

创建动态变量 是个坏主意。而是创建一个 object 并使用键/值。

var branches = {}; // new object, move this to the scope you want to access the value from later
branch[item.id] = 123; // set the key 'item.id' to the value '123'
console.log(branch[item.id]); // retrieve the value of the key 'item.id'

但是如果您这样做,您也可以将 JSON 数据的结构更改为如下所示:

{"sample":[{"1": {"name": "branch name1", "value": 123}, "2": {"name": "branch name2", "value": 456}}]}

然后只需获取数组的元素并像上面的 branches 一样使用它们。

关于javascript - 从 json 响应创建动态变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4530973/

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