我正在尝试从 JSON 文件中提取多条数据以放入一个对象中,这样我就可以将对象转换回 JSON,只包含我想要的数据。
我在想这样的对象是可能的:
data = {
0: {
lat: xxxx,
lng: xxxx,
name: xxxx
},
1: {
...
}
};
这是提取数据的循环,但我不知道如何将三个数据点分配给对象 (data) 内的同一个对象 (data.0、data.1、...)。
for (let z = 0; z < data.features.length; z++) {
finalData.z.lat = data.features[z].center[0];
finalData.z.lng = data.features[z].center[1];
finalData.z.name = data.features[z].text;
}
我不介意是否在对象上使用数组,因为它们也可以被 JSON.stringified。 data.features 的长度因 API 调用而异。
我希望使用 vanilla JS 来完成此任务,但欢迎提出建议。它正在服务器 (Node.js) 上执行。
最佳答案
使用允许属性访问的 []
表示法而不是 dot
表示法。
var dataArray = [];
for (let z = 0; z < data.features.length; z++) {
var finalData = {};
finalData[z] = {};
finalData[z].lat = data.features[z].center[0];
finalData[z].lng = data.features[z].center[1];
finalData[z].name = data.features[z].text;
dataArray.push(finalData);
}
如果您使用的是 ES6,那么您可以使用 []
模式匹配来获取计算的属性名称。
let dataArray = [];
for (let z = 0; z < data.features.length; z++) {
let feature = data.features[z];
let structuredData = {
[z]: {
lat: feature.center[0],
lng: feature.center[1],
name: feature.text
}
};
dataArray.push(structuredData);
}
关于JavaScript 将 JSON 数据提取到新对象中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44467539/