我正在使用 JSON 流解析一个大型 JSON 文件。这有效,但它逐行返回文件。因此,当我尝试重组数据时,我只能得到不重复的数据。
例如,这是结构:
{
"Test": {
"id": 3454534344334554345434,
"details": {
"text": "78679786787"
},
"content": {
"text": 567566767656776
},
"content": {
"text": 567566767656776
},
"content": {
"text": 567566767656776
}
}
}
我能够得到Test.id
,或者Test.details.id
但我只能得到Test.content
每行的第一个。
我试图设置一个数组,但这仍然只得到Test.content
.
除了使用 JSONStream 之外,还有其他方法可以转换大文件吗?
解析代码:
var getStream = function () {
let stream = fs.createReadStream(path.join(__dirname, '../test.json'), {
encoding: 'utf8'
}),
parser = JSONStream.parse('*.Test')
return stream.pipe(parser);
};
getStream()
.pipe(es.mapSync(function (data) {
let dataObj = []
dataObj.push(data)
processData(dataObj)
}))
function processData(d) {
let js = JSON.parse(JSON.stringify(d))
console.log(js)
// js.forEach(function (value, index) {
// Object.keys(value).forEach(function (v, i) {});
// })
}