Javascript 如何使用Typescript将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

我有一个包含数千个对象的大型json文件

{
    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()+']);