Как преобразовать массив имен файлов в JSON и добавить ключ - PullRequest
0 голосов
/ 07 июня 2019

Я настраиваю новую веб-страницу, которая показывает все файлы в папке. Как я могу преобразовать массив имен документов в 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"]

Ответы [ 3 ]

0 голосов
/ 07 июня 2019

Вы можете отобразить значение как объект.

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

console.log(result);
0 голосов
/ 07 июня 2019

Попробуйте это,

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

Играйте с этим кодом, возможно, вам придется изменить каталог! Веселитесь.

0 голосов
/ 07 июня 2019
let json = JSON.stringify(docs.map((doc) => { 
  return {
    catalogueName: doc
  };
}))
...