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

如何检查Json Doc是否在Node JS中具有所有必需的密钥

运维笔记admin15浏览0评论

如何检查Json Doc是否在Node JS中具有所有必需的密钥

如何检查Json Doc是否在Node JS中具有所有必需的密钥

我找到了关于如何检查一个json文件的多个例子,如果一个密钥存在,但我试图这样做更有效率。

我有一个导入过程,用户上传一个csv文件,然后我将其转换为json。

由于我的csv文件有多种格式,我想在导入之前检查是否存在某组字段/键,因为大多数格式都有不同的键名。

所以开始我去计算json中的Key计数,这缩小了我可能的定义。然后我想使用一组类似的键

["field1", "field2", "field3"] 

然后检查它们是否都在我的json文件中。有一个简单的方法或它需要循环通过数组并检查每个键?

回答如下:

您可以从JSON对象中提取密钥,但仍需要遍历“必需”密钥列表并检查它们是否存在于密钥列表中。像下面这样的东西应该做的伎俩:

const myObject = {}; // getObjectFromCSV();
const required = ["field1", "field2", "field3"];
const objKeys = Object.keys(myObject);
required.every(key => objKeys.includes(key));

要获取缺少必填字段的列表,我将执行以下操作。此代码将替换上面的最后一行(使用以下every

const missingRequired = required.reduce(
  (acc, key) => { 
    if (!objKeys.includes(key)) { 
      acc.push(key);
    } 
    return acc;
  }, []);
const isValid = missingRequired.length === 0;

在reducer函数中,acc是最初设置为[]的累加器,如果它是空的,则没有丢失的键。请注意,与every函数相比,条件相反,因为我们想知道何时丢失密钥,而不是找到所有密钥。

发布评论

评论列表(0)

  1. 暂无评论