Javascript 如何使用Typescript将JSON文件拆分为单独的文件
我有一个包含数千个对象的大型json文件Javascript 如何使用Typescript将JSON文件拆分为单独的文件,javascript,node.js,json,typescript,Javascript,Node.js,Json,Typescript,我有一个包含数千个对象的大型json文件 { Desc: 'ABC', Arguments: [ 'Trace' ] }, { Desc: 'XYZ', Arguments: [ 'Stack' ] }, 我希望拆分此json文件,使每个json文件包含一个文档,并使用值命名它们: ABC.json,XYZ.json 例如,ABC.json将包含: { Desc: 'ABC', Arguments: [ 'Trace' ] } 我想实现使用ty
{
Desc: 'ABC',
Arguments: [ 'Trace' ]
},
{
Desc: 'XYZ',
Arguments: [ 'Stack' ]
},
我希望拆分此json文件,使每个json文件包含一个文档,并使用值命名它们:
ABC.json,XYZ.json
例如,ABC.json将包含:
{
Desc: 'ABC',
Arguments: [ 'Trace' ]
}
我想实现使用typescript,任何建议
这是我不完整的代码
const fs = require('fs');
const file = 'test.json';
const jsonData = mapEvents(getJSONFileData(file));
function getJSONFileData(filename) {
return fs
.readFileSync(filename, 'utf-8')
.split('\n')
.filter(Boolean)
.map(JSON.parse);
}
function mapEvents(events) {
return JSON.stringify(events);
}
const objects = JSON.parse(jsonData);
objects.filter(function () {
return "Code" === "";
});
for(const fname in objects){
fileName = objects['Code']+'.json'
}
如果您的数据最初是一个数组,我认为您做得太多了
const fs = require('fs');
const file = 'test.json';
const data = JSON.parse(fs.readFileSync(file).toString());
// loop over every entry
data.forEach(record => {
// save as record.Desc for the name. I'm not sure what you want to stringify
// so I just put record there, perhaps you want record.Arguments
fs.writeFileSync(`${record.Desc}.json`, JSON.stringify(record));
});
非常感谢您的回复,上面的代码在forEach中出错,不是一个函数,因此已经添加到Object.keys(数据)中。您能告诉我如何添加带有值的文件名吗?当我运行代码文件时,不是创建文件,而是使用单独的对象获取json数据作为响应,而不是创建文件。您可以控制台.log(数据);告诉我结构是什么样的?根据您的问题,它以
[…
开始,所以这应该是有效的。{Data:{Desc:ABC,Arguments:['Trace']},{Data:{Desc:XYZ,Arguments:['Stack']}
将整个对象数据放入一个单独的文件中,我需要将每个对象创建到单独的文件中,并相应地使用值。让我再次检查我的需求,{data:{Desc:{ABC],Arguments:['Trace']}},{data:{Desc XYZ,Arguments:['Stack']}}
预期的输出是ABC.json应该有{data:{Desc ABC:{Desc ABC:{,参数:['Trace']}
和XYZ.json应该有{Data:{Desc:'XYZ],参数:['Stack']}}
我认为这不是有效的json,也许你可以这样做:const Data=json.parse('['+fs.readFileSync(file.toString()+']);