Javascript 从JSON数据创建对象
我在.json文件中有以下数据:Javascript 从JSON数据创建对象,javascript,json,Javascript,Json,我在.json文件中有以下数据: { "countries": { "sweden": { "currency": "Swedish krona", "majorLanguage": "Swedish", "landArea": { "value": 410330, "uom": "sq km"
{
"countries": {
"sweden": {
"currency": "Swedish krona",
"majorLanguage": "Swedish",
"landArea": {
"value": 410330,
"uom": "sq km"
}
},
"japan": {
"currency": "yen",
"majorLanguage": "Japanese",
"landArea": {
"value": 364500,
"uom": "sq km"
}
},
"unitedStatesOfAmerica": {
"currency": "US dollar",
"majorLanguage": "English",
"landArea": {
"value": 3796742,
"uom": "sq mi"
}
}
}
}
需要想出一种方法来从中创建这个对象:
Object {
"currency": Object {
"japan": "yen",
"sweden": "Swedish krona",
"unitedStatesOfAmerica": "US dollar"
},
"majorLanguage": Object {
"japan": "Japanese",
"sweden": "Swedish",
"unitedStatesOfAmerica": "English"
},
"landArea": Object {
"japan": Object {
"value": 364500,
"uom": "sq km"
},
"sweden": Object {
"value": 410330,
"uom": "sq km"
},
"unitedStatesOfAmerica": Object {
"value": 3796742,
"uom": "sq mi"
}
}
}
将使用这些数据的应用程序是用Vue编写的,因此使用JavaScript来实现这一点是有意义的,尽管我倾向于不使用任何第三方库。具体地说,我对一种编程方法感兴趣,这种方法不需要硬编码就可以手动创建货币、主要语言和区域的对象。我真的不知道如何开始解决这个问题,所以没有任何示例尝试在这里发布。您可以使用该方法并执行以下操作
const data={国家:{瑞典:{货币:瑞典克朗,主要语言:瑞典语,地区:{币值:410330,计量单位:平方公里},日本:{货币:日元,主要语言:日语,地区:{币值:364500,计量单位:平方公里},美国:{货币:美元,主要语言:英语,地区:{币值:3796742,计量单位:平方米}};
//迭代对象键值对
const res=Object.entriesdata.countries.reduceobj[country,valObj]=>{
//迭代国家/地区值键val对
Object.entriesvalObj.forEach[key,val]=>{
//定义键(如果未定义)
obj[key]=obj[key]|{};
//在对象中定义键为country的值
obj[主要][国家]=val;
}
返回obj;
}, {}
console.logres 这里没什么特别的:
const result = {};
for (const name in countries) {
const country = countries[name];
for (const key in country) {
if (!result[key]) result[key] = {};
result[key][name] = country[key];
}
}
查看此链接:加载文件后,它将转换为JS对象,因此,要到达最终对象,您需要对itJSON.stringifyjson执行一些操作。您是否尝试过此操作?