如何为数组中的每个对象提供自己的键?
How can i give each of the objects in my array their own key?
我正在尝试更改我的数据,使我的对象的每个元素都有自己的键。我认为我的问题相当简单,但我还没有找到解决方法。
我的数据现在的排列方式:
[
{
"country name": "Qatar",
"GDP": "140,649.2",
"country code": "QAT"
},
{
"country name": "MacaoSAR,China",
"GDP": "139,767.3",
"country code": "LUX"
},
...
我希望数据的排列方式:
data: {
'QAT': {
"country name": "Qatar",
"GDP": "140,649.2",
},
'LUX': {
"country name": "MacaoSAR,China",
"GDP": "139,767.3",
},
...
请不要介意不同的键值对。我完全感兴趣的是如何在 {}
括号内为我的值提供键值,如第二个示例所示。
您可以将其作为对象而不是像这样的数组发送...
{
"NLD": {
"fillKey": "conflict",
"name": "2012 Northern Mali conflict",
"startOfConflict": 2012
},
"LBY": {
"fillKey": "conflict",
"name": "2011– present Libyan factional fighting",
"startOfConflict": 2011
}
}
这将是一个问题,键在 JSON 中需要是唯一的,例如 case 键可能会重复,因此您在解析时可能会丢失一些数据,最好使用当前结构或者您可以使用数字作为键。
非循环"country code"
键的解决方案:
var arr = [ // exemplary array
{
"country name": "Qatar",
"GDP": "140,649.2",
"country code": "QAT"
},
{
"country name": "MacaoSAR,China",
"GDP": "139,767.3",
"country code": "LUX"
}
], rearranged = {};
arr.forEach(function(obj){
var info = {};
Object.keys(obj).forEach((k) => k === "country code" || (info[k] = obj[k]));
rearranged[obj["country code"]] = info;
});
console.log(JSON.stringify(rearranged, 0, 4));
输出:
{
"QAT": {
"country name": "Qatar",
"GDP": "140,649.2"
},
"LUX": {
"country name": "MacaoSAR,China",
"GDP": "139,767.3"
}
}
我正在尝试更改我的数据,使我的对象的每个元素都有自己的键。我认为我的问题相当简单,但我还没有找到解决方法。
我的数据现在的排列方式:
[
{
"country name": "Qatar",
"GDP": "140,649.2",
"country code": "QAT"
},
{
"country name": "MacaoSAR,China",
"GDP": "139,767.3",
"country code": "LUX"
},
...
我希望数据的排列方式:
data: {
'QAT': {
"country name": "Qatar",
"GDP": "140,649.2",
},
'LUX': {
"country name": "MacaoSAR,China",
"GDP": "139,767.3",
},
...
请不要介意不同的键值对。我完全感兴趣的是如何在 {}
括号内为我的值提供键值,如第二个示例所示。
您可以将其作为对象而不是像这样的数组发送...
{
"NLD": {
"fillKey": "conflict",
"name": "2012 Northern Mali conflict",
"startOfConflict": 2012
},
"LBY": {
"fillKey": "conflict",
"name": "2011– present Libyan factional fighting",
"startOfConflict": 2011
}
}
这将是一个问题,键在 JSON 中需要是唯一的,例如 case 键可能会重复,因此您在解析时可能会丢失一些数据,最好使用当前结构或者您可以使用数字作为键。
非循环"country code"
键的解决方案:
var arr = [ // exemplary array
{
"country name": "Qatar",
"GDP": "140,649.2",
"country code": "QAT"
},
{
"country name": "MacaoSAR,China",
"GDP": "139,767.3",
"country code": "LUX"
}
], rearranged = {};
arr.forEach(function(obj){
var info = {};
Object.keys(obj).forEach((k) => k === "country code" || (info[k] = obj[k]));
rearranged[obj["country code"]] = info;
});
console.log(JSON.stringify(rearranged, 0, 4));
输出:
{
"QAT": {
"country name": "Qatar",
"GDP": "140,649.2"
},
"LUX": {
"country name": "MacaoSAR,China",
"GDP": "139,767.3"
}
}