Javascript 为键和值对构建JSON结构,其中每个项的键都会更改?

Javascript 为键和值对构建JSON结构,其中每个项的键都会更改?,javascript,json,sweetalert,sweetalert2,Javascript,Json,Sweetalert,Sweetalert2,我正在使用,我需要创建选项,这些选项将填充在一个选择框中。但是,我知道我可以使用inputOptions字段,我在下面的网站上查看了他们的示例: inputOptions: { 'SRB': 'Serbia', 'UKR': 'Ukraine', 'HRV': 'Croatia' }, 现在,当你有一组固定的硬编码数据时,这是非常好的。然而,在我的用例中,我需要能够从数据库中提取这些数据,我的API已经通过REST端点实现了这一点,假设我以以下结构将其返回: [ {"key":

我正在使用,我需要创建选项,这些选项将填充在一个选择框中。但是,我知道我可以使用inputOptions字段,我在下面的网站上查看了他们的示例:

inputOptions: {
  'SRB': 'Serbia',
  'UKR': 'Ukraine',
  'HRV': 'Croatia'
},
现在,当你有一组固定的硬编码数据时,这是非常好的。然而,在我的用例中,我需要能够从数据库中提取这些数据,我的API已经通过REST端点实现了这一点,假设我以以下结构将其返回:

[
  {"key": "SRB", "value":"Serbia"},
  {"key": "UKR", "value":"Ukraine"},
  {"key": "SRB", "value":"Croatia"}
]
是否有一种简单的方法将底部格式转换为顶部格式

我尝试对其进行迭代,为每个变量创建一个变量,如下所示:

            var items = JSON.parse(listFromAPI);
            for (var item in items)
            {
              var test = { item.key : item.value };
            }
但这似乎不起作用?我真的需要一些帮助

提前谢谢

你能试试这个吗:

var items = JSON.parse(listFromAPI);
            for (var item in items)
            {
              var test = { items[item].key : items[item].value };
            }
而不是

var items = JSON.parse(listFromAPI);
            for (var item in items)
            {
              var test = { item.key : item.value };
            }
尝试使其尽可能接近您现有的代码。

您可以尝试以下方法:

var items = JSON.parse(listFromAPI);
            for (var item in items)
            {
              var test = { items[item].key : items[item].value };
            }
而不是

var items = JSON.parse(listFromAPI);
            for (var item in items)
            {
              var test = { item.key : item.value };
            }

尝试使其尽可能接近现有代码。

您可以迭代基本对象,并根据需要创建inputOptions:

var base_格式=[ {key:SRB,value:servia}, {键:UKR,值:乌克兰}, {关键字:HRV,值:克罗地亚} ]; var-inputOptions={}; 对于基本格式的项 inputOptions[item.key]=item.value;
console.loginputOptions 您可以迭代基本对象,并根据需要创建inputOptions:

var base_格式=[ {key:SRB,value:servia}, {键:UKR,值:乌克兰}, {关键字:HRV,值:克罗地亚} ]; var-inputOptions={}; 对于基本格式的项 inputOptions[item.key]=item.value; console.loginputOptions;在循环中,items中的item将是数组中的索引,而不是实际的项。您可以使用for…of循环,也可以使用for let i in items let item=items[i];在循环中,items中的item将是数组中的索引,而不是实际的项。您可以使用for…of循环,也可以使用for let i in items let item=items[i];