JS中如何判断传过来的JSON数据中是否存在某字段
如何判断传过来的JSON数据中,某个字段是否存在,
1.obj["key"]!=undefined
这种有缺陷,如果这个key定义了,并且就是很2的赋值为undefined,那么这句就会出问题了。
2.!("key"inobj)
3.obj.hasOwnProperty("key")
这两种方法就比较好了,推荐使用。
答案原文:
Actually,checkingforundefined-nessisnotanaccuratewayoftestingwhetherakeyexists.Whatifthekeyexistsbutthevalueisactuallyundefined?
varobj={key:undefined};
obj["key"]!=undefined//false,butthekeyexists!
Youshouldinsteadusetheinoperator:
"key"inobj//true,regardlessoftheactualvalue
Ifyouwanttocheckifakeydoesn'texist,remembertouseparenthesis:
!("key"inobj)//trueif"key"doesn'texistinobject
!"key"inobj//ERROR!Equivalentto"falseinobj"
Or,ifyouwanttoparticularlytestforpropertiesoftheobjectinstance(andnotinheritedproperties),usehasOwnProperty:
obj.hasOwnProperty("key")//true