如果json数据(来自后端)具有角度键值,如何检查条件

Posted

技术标签:

【中文标题】如果json数据(来自后端)具有角度键值,如何检查条件【英文标题】:How to check the condition if the json data (coming from backend) has a key value in angular 【发布时间】:2022-01-18 11:09:42 【问题描述】:

在我的 Angular 应用程序中,我从服务器获取了数据,它是 json 格式,例如

jsondata =  
    Id: 16531914, 
    EmailId: "abc@gmail.com" 

我的要求是如果 jsondata(来自服务器)有 Id,那么我必须导航到仪表板页面,否则我必须转到登录页面

【问题讨论】:

这不是 JSON。 【参考方案1】:

您还可以检查对象何时可用

goto = (page) => 
  this.router.navigate([page]);


jsondata?.id ? this.goto(jsondata.id.toString()) : this.goto('login')

【讨论】:

【参考方案2】:

当 JSON 被解析为 JS 对象时(通过 JSON.parse 或 Angular 的 HttpClient 在内部调用),您可以通过将其与 null 进行比较来检查字段是否存在:

if (jsondata.Id != null) 
  // navigate(etc)

如果id 字段为0,则仅执行if (jsondata.Id) 将不起作用,因为0 在JS 中是一个虚假值。与 null (!= null) 进行失败比较将捕获 undefinednull 但不会捕获 0

【讨论】:

【参考方案3】:

你可以简单地使用 if chek

if(jsondata.Id) return this.router.navigate([...other routes, jsondata.Id]) 
this.router.navigate(['/login'])

【讨论】:

以上是关于如果json数据(来自后端)具有角度键值,如何检查条件的主要内容,如果未能解决你的问题,请参考以下文章

如何以角度保存和加载来自 html WYSIWYG 编辑器的内容

在对象的 json 数组中找到一个键值并返回另一个带有角度的键值

使用 Spring boot 解析具有无效键值的 JSON 对象

如何使用 Codable 解码具有更改键的 json 响应?

pgsql jsonb的索引

使用 JSON 键值 ( id ) 更新核心数据