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


Posted in Javascript onMarch 07, 2014

如何判断传过来的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 相关文章推荐
javascript事件问题
Sep 05 Javascript
在线一元二次方程计算器实例(方程计算器在线计算)
Dec 22 Javascript
js处理自己不能定义二维数组的方法详解
Mar 03 Javascript
解决node-webkit 不支持html5播放mp4视频的方法
Mar 11 Javascript
jQuery实现鼠标经过时出现隐藏层文字链接的方法
Oct 12 Javascript
JavaScript实现给定时间相加天数的方法
Jan 25 Javascript
浅析AMD CMD CommonJS规范--javascript模块化加载学习心得总结
Mar 16 Javascript
基于jQuery实现音乐播放试听列表
Apr 14 Javascript
AngularJS Toaster使用详解
Feb 24 Javascript
原生js轮播特效
May 18 Javascript
微信小程序自定义带价格显示日历效果
Dec 29 Javascript
vue项目前端微信JSAPI与外部H5支付相关实现过程及常见问题
Apr 14 Javascript
js类型转换与引用类型详解(Boolean_Number_String)
Mar 07 #Javascript
JS调试必备的5个debug技巧
Mar 07 #Javascript
javascript中style.left和offsetLeft的用法说明
Mar 07 #Javascript
js读取被点击次数的简单实例(从数据库中读取)
Mar 07 #Javascript
js函数名与form表单元素同名冲突的问题
Mar 07 #Javascript
javascript(js)的小数点乘法除法问题详解
Mar 07 #Javascript
jquery中常用的函数和属性详细解析
Mar 07 #Javascript
You might like
php中将时间差转换为字符串提示的实现代码
2011/08/08 PHP
PHP编码转换函数 自动转换字符集支持数组转换
2012/12/16 PHP
PHP基于正则批量替换Img中src内容实现获取缩略图的功能示例
2017/06/07 PHP
javascript 清除输入框中的数据
2009/04/13 Javascript
ExtJS 学习专题(一) 如何应用ExtJS(附实例)
2010/03/11 Javascript
Jquery 动态添加按钮实现代码
2010/05/06 Javascript
Javascript计算时间差的函数分享
2011/07/04 Javascript
关于javaScript注册click事件传递参数的不成功问题
2014/07/18 Javascript
黑帽seo劫持程序,js劫持搜索引擎代码
2015/09/15 Javascript
jQuery实用技巧必备(下)
2015/11/03 Javascript
JavaScript检测原始值、引用值、属性
2016/06/20 Javascript
angularjs实现文字上下无缝滚动特效代码
2016/09/04 Javascript
ES6概念 ymbol.for()方法
2016/12/25 Javascript
关于Stream和Buffer的相互转换详解
2017/07/26 Javascript
深入浅出es6模板字符串
2017/08/26 Javascript
微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧不动,右侧滑动)
2019/01/23 Javascript
Vue.set 全局操作简单示例
2019/09/19 Javascript
Vue proxyTable配置多个接口地址,解决跨域的问题
2020/09/11 Javascript
JavaScript数组常用的增删改查与其他属性详解
2020/10/13 Javascript
vue实现登录、注册、退出、跳转等功能
2020/12/23 Vue.js
[01:19:11]Ti4 循环赛第二日 NaVi.us vs iG
2014/07/11 DOTA
Python中super函数的用法
2017/11/17 Python
Python图像处理实现两幅图像合成一幅图像的方法【测试可用】
2019/01/04 Python
Django基础知识 URL路由系统详解
2019/07/18 Python
python requests指定出口ip的例子
2019/07/25 Python
Python面向对象中类(class)的简单理解与用法分析
2020/02/21 Python
python爬取”顶点小说网“《纯阳剑尊》的示例代码
2020/10/16 Python
细说CSS3中的选择符
2008/10/17 HTML / CSS
html5 input属性使用示例
2013/06/28 HTML / CSS
美国演唱会订票网站:Ticketmaster美国
2017/10/05 全球购物
计算机网络工程专业职业生涯规划书
2014/03/10 职场文书
个人自我鉴定总结
2014/03/25 职场文书
英文感谢信范文
2015/01/21 职场文书
大学毕业典礼致辞
2015/07/29 职场文书
Python基础之hashlib模块详解
2021/05/06 Python
AJAX实现指定部分页面刷新效果
2021/10/16 Javascript