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 相关文章推荐
jQuery事件用法实例汇总
Aug 29 Javascript
js在IE与firefox的差异集锦
Nov 11 Javascript
在JavaScript中操作时间之setYear()方法的使用
Jun 12 Javascript
谈谈Jquery中的children find 的区别有哪些
Oct 19 Javascript
javascript倒计时效果实现
Nov 12 Javascript
Angularjs过滤器使用详解
May 25 Javascript
jQuery+正则+文本框只能输入数字的实现方法
Oct 07 Javascript
jQuery电话号码验证实例
Jan 05 Javascript
Vue.js实现的表格增加删除demo示例
May 22 Javascript
Vue SPA单页应用首屏优化实践
Jun 28 Javascript
使用JQuery自动完成插件Auto Complete详解
Jun 18 jQuery
使用Element的InfiniteScroll 无限滚动组件报错的解决
Jul 27 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中的数组操作函数整理
2008/08/18 PHP
PHP 5.6.11中CURL模块问题的解决方法
2016/08/08 PHP
Mac版PhpStorm之XAMPP整合apache服务器配置的图文教程详解
2016/10/13 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
js实现幻灯片播放图片示例代码
2013/11/07 Javascript
jquery原创弹出层折叠效果点击折叠弹出一个层
2014/03/12 Javascript
Javascript实现鼠标右键特色菜单
2015/08/04 Javascript
js中 javascript:void(0) 用法详解
2015/08/11 Javascript
javascript正则表达式定义(语法)总结
2016/01/08 Javascript
js提示框替代系统alert,自动关闭alert对话框的实现方法
2016/11/07 Javascript
详解微信小程序入门五: wxml文件引用、模版、生命周期
2017/01/20 Javascript
如何将 jQuery 从你的 Bootstrap 项目中移除(取而代之使用Vue.js)
2017/07/17 jQuery
JS实现点击循环切换显示内容的方法
2017/10/19 Javascript
Node.js API详解之 timer模块用法实例分析
2020/05/07 Javascript
javascript中的offsetWidth、clientWidth、innerWidth及相关属性方法
2020/05/14 Javascript
[01:56]林书豪DOTA2上海特级锦标赛励志短片
2016/03/05 DOTA
[48:51]完美世界DOTA2联赛PWL S2 Magma vs InkIce 第一场 11.28
2020/12/02 DOTA
Python基于有道实现英汉字典功能
2015/07/25 Python
Python2和Python3之间的str处理方式导致乱码的讲解
2019/01/03 Python
python GUI库图形界面开发之PyQt5布局控件QHBoxLayout详细使用方法与实例
2020/03/06 Python
Python求凸包及多边形面积教程
2020/04/12 Python
Css3+Js制作漂亮时钟(附源码)
2013/04/24 HTML / CSS
肯尼亚网上商城:Kilimall
2016/08/20 全球购物
中国医药集团国药在线:国药网
2017/02/06 全球购物
英国婚礼商城:Wedding Mall
2019/11/02 全球购物
英国最大的在线亚洲杂货店:Red Rickshaw
2020/03/22 全球购物
PHP中如何使用Cookie
2015/10/28 面试题
教育学专业实习生的自我鉴定
2013/11/26 职场文书
纠纷协议书
2014/04/16 职场文书
英语教育专业自荐信
2014/05/29 职场文书
2014年党课学习心得体会
2014/07/08 职场文书
师德师风建设整改措施思想汇报
2014/10/11 职场文书
2015年大学迎新晚会总结
2015/07/16 职场文书
2016学校先进党组织事迹材料
2016/02/29 职场文书
浅谈如何写好演讲稿?
2019/06/12 职场文书
pytorch锁死在dataloader(训练时卡死)
2021/05/28 Python