Angular 角度2。检查Json键是否包含内容

Angular 角度2。检查Json键是否包含内容,angular,typescript,Angular,Typescript,在下面的Json中,我收到了要在屏幕上显示的不同产品。请注意,Medical250有价值,但医院、生命和牙科没有价值。这取决于我发送给API提要的状态和时间 { "success": "1", "quotekey": "1e2532897f24a46b98799665e43052423", "membership": [{ "planid&

在下面的Json中,我收到了要在屏幕上显示的不同产品。请注意,Medical250有价值,但医院、生命和牙科没有价值。这取决于我发送给API提要的状态和时间

{
    "success": "1",
    "quotekey": "1e2532897f24a46b98799665e43052423",
    "membership": [{
            "planid": "1",
            "membership": "Select Basic",
            "fee": "10.95"
        },
        {
            "planid": "2",
            "membership": "Select Silver",
            "fee": "19.95"
        },
        {
            "planid": "3",
            "membership": "Select Gold",
            "fee": "29.95"
        },
        {
            "planid": "4",
            "membership": "Select Platinum",
            "fee": "39.95"
        },
        {
            "planid": "5",
            "membership": "Select Diamond",
            "fee": "49.95"
        }
    ],
    "dental": [],
    "medical0": [],
    "medical250": [{
            "plannumber": "1",
            "single": "9.49",
            "couple": "18.97",
            "singlewithdependents": "21.82",
            "family": "26.56"
        },
        {
            "plannumber": "2",
            "single": "12.28",
            "couple": "24.55",
            "singlewithdependents": "28.23",
            "family": "34.37"
        },
        {
            "plannumber": "3",
            "single": "14.07",
            "couple": "28.14",
            "singlewithdependents": "32.36",
            "family": "39.40"
        },
        {
            "plannumber": "4",
            "single": "16.74",
            "couple": "33.48",
            "singlewithdependents": "38.50",
            "family": "46.87"
        }
    ],
    "hospital": [],
    "life": []
}
我正在解析该Json并获取如下值:

this.MedicalQuote = this.APIresult[0].medical250[0].single;
等等。。。但是当我尝试获取此信息时。apireult[0]。dental[0]。single;这不存在,我的代码崩溃了。有没有办法确定一个键(如本例中的dental键)是否包含任何值,或者它是否为空[]?所有键都有一个名为single的值,但成员资格除外,该值始终包含值

我现在正在为每种产品做try-catch e,但它看起来不像是一个干净的解决方案,我想用正确的方法来做


谢谢。

使用if语句检查属性是否存在,例如:

if(thisSession.hasOwnProperty('dental')){
    //your code...
}

使用if语句检查属性是否存在,例如:

if(thisSession.hasOwnProperty('dental')){
    //your code...
}
您可以添加?在可以为空的属性之后签名,它将返回未定义的

const result=this.apireult[0].dental[0]?.single

然后结果变量将是未定义的,您可以根据需要使用它。

您可以添加?在可以为空的属性之后签名,它将返回未定义的

const result=this.apireult[0].dental[0]?.single


然后,结果变量将是未定义的,您可以根据需要使用它。

在此行之前this.apireult[0].medical250[0].single,如果this.apireult[0].medical250&&this.apireult[0].medical250.length>0。在此行之前this.apireult[0].medical250[0].single,如果this.apireult[0].medical250&&this.apireult[0].medical250.length>0.Hi Igor,则需要检查medical250是否存在。我不知道牙科是否有价值。嗨,伊戈尔。我不知道dental是否有值。