如何将文件名数组转换为 JSON 并添加一个键

How to convert an array of file names to JSON and add a key

我正在设置一个显示文件夹中所有文件的新网页。如何将文档名称数组转换为 JSON?

为此,我知道我需要一个 JSON 对象从服务器发送到前端。我目前有一个文档名称数组,但我不知道如何将其转换为 JSON 并为每个值添加一个键。我已经尝试使用 JSON.stringify() 和用户在这里提供的许多其他方法,但无济于事。

let docs = [];
    fs.readdir(../../docs', function(err, docs) {
        let json = JSON.stringify(docs);
        res.send(json);

我希望输出是

[
   {
      "catalogName": "doc.pdf"
   },
   {
      "catalogName": "doc2.pdf"
   }
]

我目前正在 ["doc.pdf", "doc2.pdf"]

let json = JSON.stringify(docs.map((doc) => { 
  return {
    catalogueName: doc
  };
}))

您可以将值映射为对象。

var array = ["doc.pdf", "doc2.pdf"],
    result = array.map(catalogName => ({ catalogName }));

console.log(result);

试试这个,

fs.readdir('.', function(err, docs) {
   const docMap = docs.reduce((docMap,doc)=>{
        return docMap.concat({"catalogName":doc})
    },[])
    console.log(docMap)
});

它生成的输出类似于

[ { catalogName: 'node_modules' },
  { catalogName: 'package.json' },
  { catalogName: 'README.md' },
  { catalogName: 'test.js' } ]

使用这段代码,您可能需要更改目录!玩得开心。