JS中判断JSON数据是否存在某字段的方法

2014-03-07 29 whsnow

如何判断传过来的JSON数据中,某个字段是否存在,

1.obj["key"] != undefined
这种有缺陷,如果这个key定义了,并且就是很2的赋值为undefined,那么这句就会出问题了。
2.!("key" in obj)
3.obj.hasOwnProperty("key")

这两种方法就比较好了,推荐使用。

答案原文:

Actually, checking for undefined-ness is not an accurate way of testing whether a key exists. What if the key exists but the value is actually undefined?

var obj = { key: undefined };
obj["key"] != undefined // false, but the key exists!

You should instead use the in operator:

"key" in obj // true, regardless of the actual value

If you want to check if a key doesn't exist, remember to use parenthesis:

!("key" in obj) // true if "key" doesn't exist in object
!"key" in obj // ERROR! Equivalent to "false in obj"

Or, if you want to particularly test for properties of the object instance (and not inherited properties), usehasOwnProperty:

obj.hasOwnProperty("key") // true

展开阅读全文

更多Javascript文章

Jquery 过滤器(first,last,not,even,odd)的使用
Jan 22 45
js实现鼠标经过时图片滚动停止的方法
Feb 16 45
分享使用AngularJS创建应用的5个框架
Dec 05 41
最好用的Bootstrap fileinput.js文件上传组件
Dec 12 37
Javascript中八种遍历方法的执行速度深度对比
Apr 25 35
JS逻辑运算符短路操作实例分析
Jul 09 36
在React项目中使用Eslint代码检查工具及常见问题
Oct 10 36
手机访问当前页面