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


Posted in Javascript onAugust 18, 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 获取URL参数的插件
Mar 04 Javascript
简单的代码实现jquery定时器
Jan 03 Javascript
javascript生成随机颜色示例代码
May 05 Javascript
JavaScript插件化开发教程 (三)
Jan 27 Javascript
完美实现仿QQ空间评论回复特效
May 06 Javascript
JS 实现可停顿的垂直滚动实例代码
Nov 23 Javascript
jQuery中的siblings()是什么意思(推荐)
Dec 29 Javascript
用图片替换checkbox原始样式并实现同样的功能
Nov 15 Javascript
JS中数据结构与算法---排序算法(Sort Algorithm)实例详解
Jun 17 Javascript
vue2 拖动排序 vuedraggable组件的实现
Aug 08 Javascript
jQuery 淡入/淡出效果函数用法分析
May 19 jQuery
vue 需求 data中的数据之间的调用操作
Aug 05 Javascript
jquery中$(#form :input)与$(#form input)的区别
Aug 18 #Javascript
JQuery EasyUI 加载两次url的原因分析及解决方案
Aug 18 #Javascript
javascript ajax的5种状态介绍
Aug 18 #Javascript
jquery操作HTML5 的data-*的用法实例分享
Aug 17 #Javascript
js判断浏览器是否支持html5
Aug 17 #Javascript
一段非常简单的js判断浏览器的内核
Aug 17 #Javascript
JavaScript继承基础讲解(原型链、借用构造函数、混合模式、原型式继承、寄生式继承、寄生组合式继承)
Aug 16 #Javascript
You might like
PHP的curl实现get,post和cookie(实例介绍)
2013/06/17 PHP
php用户密码加密算法分析【Discuz加密算法】
2016/10/12 PHP
PHP将数据导出Excel表中的实例(投机型)
2017/07/31 PHP
php单元测试phpunit入门实例教程
2017/11/17 PHP
Thinkphp5.0框架视图view的模板布局用法分析
2019/10/12 PHP
javascript多种数据类型表格排序代码分析
2010/09/11 Javascript
读jQuery之四(优雅的迭代)
2011/06/20 Javascript
浅析JQuery中的html(),text(),val()区别
2014/09/01 Javascript
jQuery及JS实现循环中暂停的方法
2015/02/02 Javascript
在JavaScript的正则表达式中使用exec()方法
2015/06/16 Javascript
javascript随机显示背景图片的方法
2015/06/18 Javascript
让JavaScript中setTimeout支持链式操作的方法
2015/06/19 Javascript
JavaScript代码轻松实现网页内容禁止复制(代码简单)
2015/10/23 Javascript
jquery实现上传文件大小类型的验证例子(推荐)
2016/06/25 Javascript
D3.js封装文本实现自动换行和旋转平移等功能
2016/10/14 Javascript
JavaScript表单即时验证 验证不成功不能提交
2017/08/31 Javascript
解决vue打包之后静态资源图片失效的问题
2018/02/21 Javascript
vue中$set的使用(结合在实际应用中遇到的坑)
2018/07/10 Javascript
Python实现简单的HttpServer服务器示例
2017/09/25 Python
Python探索之静态方法和类方法的区别详解
2017/10/27 Python
python中多个装饰器的调用顺序详解
2019/07/16 Python
PyInstaller将Python文件打包为exe后如何反编译(破解源码)以及防止反编译
2020/04/15 Python
Python-openCV开运算实例
2020/07/05 Python
详解Python爬虫爬取博客园问题列表所有的问题
2021/01/18 Python
HTML5 Canvas锯齿图代码实例
2014/04/10 HTML / CSS
波兰数码相机及配件网上商店: Cyfrowe.pl
2017/06/19 全球购物
应届生简历中的自我评价
2014/01/13 职场文书
体育专业学生自我评价范文
2014/01/17 职场文书
购房意向书范本
2014/04/01 职场文书
师德师风承诺书
2014/05/23 职场文书
酒店优秀员工推荐信
2015/03/24 职场文书
2015年度物流工作总结
2015/04/30 职场文书
项目战略合作意向书
2015/05/08 职场文书
2015年劳动部工作总结
2015/05/23 职场文书
pandas中对文本类型数据的处理小结
2021/11/01 Python
Vue的过滤器你真了解吗
2022/02/24 Vue.js