将键值对数组转换为JSON

时间:2020-08-06 15:04:25

标签: javascript arrays json object

我具有扫描目录并在其中建立所有文件夹及其各自文件的键,值对的功能。

const listNotes =  () => {
    const listing = [];
    try{
      const folders = fs.readdirSync(defaultPath);
      folders.forEach((folder) => {
        let v = fs.readdirSync(`${defaultPath}/${folder}`);
        listing[folder] = v;
      });

      
    } catch (err) {
      console.log(err);
    } 
    return listing;
  };

这是这种扫描的输出

[ DailyTask: [ 'Chores.json' , 'Sunday.json'] ]

这是一个名为DailyTask的文件夹,其中包含2个文件。

如何将这种结构转换为JSON。

1 个答案:

答案 0 :(得分:0)

您的listing变量的问题在于它是ArrayJSON.stringify()不包括数组中的所有键,仅包括项的顺序,例如listing[0]listing[1]。在您的情况下,您实际上并没有使用listing作为数组,而是使用了is作为对象。您可以将其设置为object,然后在调用JSON.stringify()时将包含密钥。

解决方案

const listNotes =  () => {
    const listing = {};
    try{
      const folders = fs.readdirSync(defaultPath);
      folders.forEach((folder) => {
        let v = fs.readdirSync(`${defaultPath}/${folder}`);
        listing[folder] = v;
      });

      
    } catch (err) {
      console.log(err);
    } 
    return listing;

    //If you want to convert to JSON
    console.log(JSON.stringify(listing));
  };
相关问题