如果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数据(来自后端)具有角度键值,如何检查条件的主要内容,如果未能解决你的问题,请参考以下文章

如何将角度材料表与后端数据动态绑定?

我如何模拟没有索引的键值对列表(角度)?

如何使用spring boot后端使角度应用程序仅接收来自局域网的请求?

如何使用角度检查来自url的文件是不是存在?

检查对象数组中是不是存在具有特定键值的对象

如何以角度访问来自不同组件的数组