首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过函数检查Json字段是否为空或不存在

通过函数检查Json字段是否为空或不存在
EN

Stack Overflow用户
提问于 2019-02-01 09:15:08
回答 1查看 179关注 0票数 0

我正在阅读一个帖子的正文,这是一个json文档,来自一个Angular应用程序。没有问题,如果用户没有在Angular应用程序的某些字段中输入任何数据,它会发送空值。我有一个数据类,它保存了文档的结构,在本例中是一个联系人。所以我的代码看起来像这样

代码语言:javascript
复制
var quickContact = new contacts.quickContact
quickContact.type ="contact"
quickContact.initials = req.body.initials

这将为我返回一个

代码语言:javascript
复制
{ "type" : "contact", "initials" : null }

为了避免任何空值字段,我使用以下代码

代码语言:javascript
复制
var quickContact = new contacts.quickContact
quickContact.type ="contact"
if (req.body.initials){
    quickContact.initials = req.body.initials
}

现在,我得到了所需的输出

代码语言:javascript
复制
{ "type" : "contact"}

所以我的问题是,我如何将这个check if null封装到一个函数中,我可以很容易地调用这个函数,并传递字段名,以使代码更简洁,因为我有大约50个字段需要检查。

EN

回答 1

Stack Overflow用户

发布于 2019-02-01 09:23:17

要在req.body上的所有潜在字段中推广您的if语句,可以引入迭代。

一般的方法是遍历req.body的键/值对,并向quickContact添加非False值

代码语言:javascript
复制
for (const [key,value] of Object.entries(req.body)) {
  if (req.body[key]) { // <-- only set truthy values
    quickContact[key] = req.body[key];
  }
}

注意:上面的条件只会设置真值。如果您只想设置非null值,则必须明确:

代码语言:javascript
复制
for (const [key,value] of Object.entries(req.body)) {
  if (req.body[key] !== null) { // <-- only set non-null values
    quickContact[key] = req.body[key];
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54471587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档