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 相关文章推荐
30个让人兴奋的视差滚动(Parallax Scrolling)效果网站
Mar 04 Javascript
JQuery实现倒计时按钮具体方法
Nov 14 Javascript
JavaScript数组实现数据结构中的队列与堆栈
May 26 Javascript
vue实现单选和多选功能
Aug 11 Javascript
五步轻松实现zTree的使用
Nov 01 Javascript
JavaScript引用类型Function实例详解
Aug 09 Javascript
深入理解Vue 组件之间传值
Aug 16 Javascript
jQuery实现鼠标移到某个对象时弹出显示层功能
Aug 23 jQuery
微信小程序MUI导航栏透明渐变功能示例(通过改变opacity实现)
Jan 24 Javascript
JS学习笔记之闭包小案例分析
May 29 Javascript
JS实现点击发送验证码 xx秒后重新发送功能
Jul 30 Javascript
javascript的delete运算符知识点总结
Nov 19 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
神族 Protoss 剧情介绍
2020/03/14 星际争霸
php+dojo 的数据库保存拖动布局的一个方法dojo 这里下载
2007/03/07 PHP
php对二维数组按指定键值key排序示例代码
2013/11/26 PHP
PHP中比较时间大小实例
2014/08/21 PHP
php常用正则函数实例小结
2016/12/29 PHP
详解php中serialize()和unserialize()函数
2017/07/08 PHP
PHP正则匹配到2个字符串之间的内容方法
2018/12/24 PHP
PHP实现文件上传操作和封装
2020/03/04 PHP
详解使用php-cs-fixer格式化代码
2020/09/16 PHP
jquery ajax abort()的使用方法
2010/10/28 Javascript
js 利用className得到对象的实现代码
2011/11/15 Javascript
JavaScript焦点事件、鼠标事件和滚轮事件使用详解
2016/01/15 Javascript
给Easyui-Datebox设置隐藏或者不可用的解决方法
2017/05/26 Javascript
vue学习笔记五:在vue项目里面使用引入公共方法详解
2019/04/04 Javascript
webpack中如何加载静态文件的方法步骤
2019/05/18 Javascript
JavaScript实现五子棋游戏的方法详解
2019/07/08 Javascript
[58:57]2018DOTA2亚洲邀请赛3月29日小组赛B组 Effect VS VGJ.T
2018/03/30 DOTA
[03:11]不朽宝藏三外观展示
2020/09/18 DOTA
Python单元测试框架unittest简明使用实例
2015/04/13 Python
Python的ORM框架中SQLAlchemy库的查询操作的教程
2015/04/25 Python
使用Python实现简单的服务器功能
2017/08/25 Python
python实现雨滴下落到地面效果
2018/06/21 Python
python和opencv实现抠图
2018/07/18 Python
Python的log日志功能及设置方法
2019/07/11 Python
python对常见数据类型的遍历解析
2019/08/27 Python
Python Django2.0集成Celery4.1教程
2019/11/19 Python
HTML5 新标签全部总汇(推荐)
2016/06/13 HTML / CSS
amazeui页面分析之登录页面的示例代码
2020/08/25 HTML / CSS
Armor Lux法国官方网站:水手服装、成衣和内衣
2020/05/26 全球购物
cf收人广告词
2014/03/14 职场文书
本科毕业生求职信
2014/06/15 职场文书
舞蹈兴趣小组活动总结
2014/07/07 职场文书
个人批评与自我批评范文
2014/10/17 职场文书
2015年导购员工作总结
2015/04/25 职场文书
如何写好竞聘报告
2019/04/03 职场文书
用JS实现飞机大战小游戏
2021/06/09 Javascript