最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

如何从对象创建JSON文件

运维笔记admin11浏览0评论

如何从对象创建JSON文件

如何从对象创建JSON文件

我目前正在寻找一种方法来创建一个JSON文件(versions.json),其中包含一个键和JavaScript中对象的值。要创建JSON文件,我在这里有这个对象:

["V1_config-interfaces.json","V2_config-interfaces.json","V3_config-interfaces.json","versions.json"]

我现在需要在这个对象上循环并检查当前文件是否不是versions.json,因为这是创建的文件。

JSON文件必须如下所示:

{
    "V1": "V1_config-interfaces.json",
    "V2": "V2_config-interfaces.json",
    "V3": "V3_config-interfaces.json"
}

因此密钥始终是下划线之前的版本号。我在这里尝试的是:

const fs = require('fs');
const interfaces = fs.readdirSync('./src/interfaces/');

fs.writeFile('./src/interfaces/versions.json', JSON.stringify(interfaces), (err) => {
    if (err) throw err;
    console.log('versions.js successfully created');
});

但是这会产生与对象看起来相同的结果。那么我怎样才能实现目标呢?

回答如下:

使用Array#reduce和regex。这将剥离文件版本并将其作为对象的键添加,并忽略任何没有版本号的内容。它还会检查版本后面是否有_字符。

const data = ["V1_config-interfaces.json","V2_config-interfaces.json","V3_config-interfaces.json","versions.json", "V4shouldntwork.json", "shouldntwork_V5_.json", "V123_shouldwork.json"];

const res = data.reduce((a,v)=>{
  const version = v.match(/^V[1-9]+(?=_)/);
  if(version === null) return a;
  a[version.shift()] = v;
  return a;
}, {});

console.log(res);

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论