【问题标题】:How to convert an array of file names to JSON and add a key如何将文件名数组转换为 JSON 并添加密钥
【发布时间】:2019-10-22 09:55:17
【问题描述】:

我正在设置一个显示文件夹中所有文件的新网页。如何将文档名称数组转换为 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"]

【问题讨论】:

  • 您将 JSON 一词与对象的概念混淆了。 JSON 只是一个遵循特定格式的字符串。一个简单的对象是一个包含key:value 对的数据结构。您的示例输出是一个对象。在这种情况下,它们的键catalogName 不需要被引用。

标签: javascript node.js json express fs


【解决方案1】:
let json = JSON.stringify(docs.map((doc) => { 
  return {
    catalogueName: doc
  };
}))

【讨论】:

    【解决方案2】:

    您可以将值映射为对象。

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

    【讨论】:

      【解决方案3】:

      试试这个,

      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' } ]
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-02
        • 2020-07-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-06
        相关资源
        最近更新 更多