如何检查此javascript对象?

如何检查此javascript对象?,javascript,json,node.js,Javascript,Json,Node.js,如何检查对象中是否存在“MessageId”?(没有抛出错误) 我可能会返回其他json对象,我需要知道我得到的对象是否有一个“MessageId”。假设您在一个名为result的变量中得到结果,您应该能够使用一个简单的if语句来实现这一点(考虑到javascript if语句短路: { "@": { "xmlns": "http://ses.amazonaws.com/doc/2010-12-01/" }, "SendEmailResult": {

如何检查对象中是否存在“MessageId”?(没有抛出错误)
我可能会返回其他json对象,我需要知道我得到的对象是否有一个“MessageId”。

假设您在一个名为result的变量中得到结果,您应该能够使用一个简单的if语句来实现这一点(考虑到javascript if语句短路:

{
    "@": {
        "xmlns": "http://ses.amazonaws.com/doc/2010-12-01/"
    },
    "SendEmailResult": {
        "MessageId": "0000012fdd10caaf-021c6e9e-e872-4b35-ad94-1d11c79a6324-000000"
    },
    "ResponseMetadata": {
        "RequestId": "736d5bb2-7b7d-11e0-b435-f7b0c9315f0d"
    }
}

假设您在一个名为result的变量中得到结果,您应该能够通过一个简单的if语句来实现这一点(考虑到javascript if语句短路:

{
    "@": {
        "xmlns": "http://ses.amazonaws.com/doc/2010-12-01/"
    },
    "SendEmailResult": {
        "MessageId": "0000012fdd10caaf-021c6e9e-e872-4b35-ad94-1d11c79a6324-000000"
    },
    "ResponseMetadata": {
        "RequestId": "736d5bb2-7b7d-11e0-b435-f7b0c9315f0d"
    }
}

假设您在
obj
中有对它的引用,则:

if (result && result["SendEmailResult"] && result["SendEmailResult"]["MessageId"]) {
    //execute your code
}
也许更有用,不过:

if (obj && obj.SendEmailResult && "MessageId" in obj.SendEmailResult) {
    // The "MessageId" property exists in `obj.SendEmailResult`
}
JavaScript和运算符
&
比其他一些语言更有用,如果两个操作数都是“truthy”(而不是像大多数语言那样只返回
true
/
false
结果),“truthy”值不是“falsy”(很明显)。“falsy”值为
false
未定义
null
,和
0

因此,上面的内容基本上是“将
msgid
设置为
obj.sendmailresult.MessageId
,前提是
obj
obj.SomeEmailResult
都存在


(操作符是。)

假设您在
obj
中有一个引用,那么:

if (result && result["SendEmailResult"] && result["SendEmailResult"]["MessageId"]) {
    //execute your code
}
也许更有用,不过:

if (obj && obj.SendEmailResult && "MessageId" in obj.SendEmailResult) {
    // The "MessageId" property exists in `obj.SendEmailResult`
}
JavaScript和运算符
&&
比其他一些语言更有用,如果它的两个操作数都是“truthy”(而不是像大多数语言那样只返回
true
/
false
结果),“truthy”值不是“falsy”(显然)。“falsy”“值为
false
未定义
null
0

因此,上面的内容基本上是“将
msgid
设置为
obj.sendmailresult.MessageId
,前提是
obj
obj.SomeEmailResult
都存在


(操作符是。)

+1使用
obj.sendmailrequest.hasOwnProperty('MessageId')
来保护不受攻击怎么样?@alex:当然,如果合适的话。99%的时候,你不在乎,你只想要这个属性——不管它来自哪里。:-)(并且您希望远离任何扩展
Object.property
)J的代码。应该向这样做的人介绍给那些为
undefined
+1指定不同值的人,使用
obj.sendmailrequest.hasOwnProperty('MessageId')怎么样
为了保护对象免受攻击?@alex:当然,如果合适的话。99%的时候,你不在乎,你只想要属性——不管它来自哪里。:-(你想运行得很远,远离任何扩展
Object.property
)的代码。应该把这样做的人介绍给那些为
未定义的
指定不同值的人。