gpt4 book ai didi

JavaScript 解析 JSON 并从中创建键值数组

转载 作者:行者123 更新时间:2023-11-30 00:23:07 25 4
gpt4 key购买 nike

我有简单的 json 格式,就像这种格式:

{
"Template": [
{
"ID": "856",
"name": "users",
"Template_Id": 0
},
{
"ID": "857",
"name": "avatars",
"Template_Id": 1
},
{
"ID": "858",
"name": "emails",
"Template_Id": 2
}
]
}

现在我正在尝试解析它并创建键值数组,例如:

var sArray = {856:users, 857:avatars, 858:emails};

我的代码在解析 json 后创建这个数组是不正确的,我得到这个错误:

Message: TypeError: obj.Template.name is undefined

我的代码是这样的:

    var obj = JSON.parse(jsonText);
var count_templates = obj.Template.length;
var template_array;

/* Length is not static */
for( i=0; i < count_templates; i++){
id = obj.Template.ID;
template_array[id] = obj.Template.name;
}
for(var key in template_array)
{
console.log("key " + key + " has value " + template_array[key]);
}

最佳答案

我会使用一个简单的 reduce Template 数组上的操作。

var obj = {
"Template": [
{
"ID": "856",
"name": "users",
"Template_Id": 0
},
{
"ID": "857",
"name": "avatars",
"Template_Id": 1
},
{
"ID": "858",
"name": "emails",
"Template_Id": 2
}
]
};

var sArray = obj.Template.reduce(function(o, tpl) {
o[tpl.ID] = tpl.name;
return o;
}, {});

document.getElementById('out').innerHTML = JSON.stringify(sArray);
<pre id="out"></pre>

关于JavaScript 解析 JSON 并从中创建键值数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32431565/

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