【发布时间】:2016-07-27 16:48:06
【问题描述】:
我有一个 .JSON 文件,其中包含类似以下的数据:
[
{
"scan_type": "nexpose",
"date_time": "2016-07-18 18:21:44",
"source_address": "1111",
"source_lat": "22.555260",
"source_lng": "-15.084420",
},
...
]
我写了一个脚本,将这些数据转换为一个对象,这是我的脚本:
let obj = require('./dataOut.json');
var fs = require('fs');
//json variables
let scan_type = obj[0].scan_type;
let date_time = obj[0].date_time;
let source_address = obj[0].source_address;
let source_lat = obj[0].source_lat;
let source_lng = obj[0].source_lng;
//source contains the new object
var source = {
id: source_lat + source_lng,
"source-lat": source_lat,
"source-lng": source_lng,
"source_address": source_address,
x: {
valueOf: function () {
var latlng = [
source_lat,
source_lng
];
var xy = map.FUNCTION_FOR_CONVERTING_LAT_LNG_TO_X_Y(latlng);
return xy[0];
}
},
y: {
valueOf: function () {
var latlng = [
source_lat,
source_lng
];
var xy = map.FUNCTION_FOR_CONVERTING_LAT_LNG_TO_X_Y(latlng);
return xy[1];
}
}
}
//write out to file and stringify
fs.writeFile('./parentSource.json', JSON.stringify(source, null, 2), 'utf-8');
如您所见,目前我已将所有内容设置为数据文件中的第一个元素 [0] 以进行测试。但我需要将其更改为循环遍历每个元素的位置。
通常我只会使用foreach 循环,但这并不成功。
如何添加一个循环遍历每个 .JSON 对象并将值添加到我的脚本中,以便我的输出文件包含所有新格式化的数据?
为了澄清,我想将结果作为结果写入一个数组,在一个文件输出中。
另外:我当前的代码工作得很好,但只适用于第一个元素[0],我只需要找到一种方法来遍历 .JSON 中的其余元素,并将它们包含在我的输出中
【问题讨论】:
-
可以使用JSON.parse函数将JSON解析为JS Object。
-
destination定义在哪里? -
您希望每个对象分别写入输出文件,还是作为 JSON 数组写入文件?你能澄清一下你想要达到的目标吗?
-
通常我只会使用 foreach 循环,但没有成功。为什么?你尝试了什么?
-
@10100111001 除非我弄错了,否则
let obj = require('./dataOut.json');已经在进行解析并将结果填充到obj。obj.forEach()应该可以工作。
标签: javascript json node.js loops for-loop