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 文章截取部分无损html显示实现代码
May 04 Javascript
简约JS日历控件 实例代码
Jul 12 Javascript
js变形金刚文字特效代码分享
Aug 20 Javascript
js淡入淡出的图片轮播效果代码分享
Aug 24 Javascript
Angularjs 实现分页功能及示例代码
Sep 14 Javascript
jQuery 局部div刷新和全局刷新方法总结
Oct 05 Javascript
ionic中列表项增加和删除的实现方法
Jan 22 Javascript
移动端触摸滑动插件swiper使用方法详解
Aug 11 Javascript
详解js几个绕不开的事件兼容写法
Aug 30 Javascript
使用watch在微信小程序中实现全局状态共享
Jun 03 Javascript
vue通过数据过滤实现表格合并
Nov 30 Javascript
React Fragment介绍与使用详解
Nov 11 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 中文处理技巧
2010/04/25 PHP
smarty模板引擎从php中获取数据的方法
2015/01/22 PHP
Yii2中如何使用modal弹窗(基本使用)
2016/05/30 PHP
PHP删除数组中指定下标的元素方法
2018/02/03 PHP
php中用unset销毁变量并释放内存
2020/05/10 PHP
Js sort排序使用方法
2011/10/17 Javascript
Jquery post传递数组方法实现思路及代码
2013/04/28 Javascript
javascript jq 弹出层实例
2013/08/25 Javascript
jquery得到iframe src属性值的方法
2014/09/25 Javascript
JavaScript分析、压缩工具JavaScript Analyser
2014/12/31 Javascript
浅谈js中的闭包
2015/03/16 Javascript
详解JavaScript的变量和数据类型
2015/11/27 Javascript
vue.js系列中的vue-fontawesome使用
2018/02/10 Javascript
JavaScript实现的DOM树遍历方法详解【二叉DOM树、多叉DOM树】
2018/05/07 Javascript
浅谈React的最大亮点之虚拟DOM
2018/05/29 Javascript
jQuery md5加密插件jQuery.md5.js用法示例
2018/08/24 jQuery
Vue.js图片预览插件使用详解
2018/08/27 Javascript
vue中引入第三方字体文件的方法示例
2018/12/17 Javascript
iview实现select tree树形下拉框的示例代码
2018/12/21 Javascript
vue-cli3中配置alias和打包加hash值操作
2020/09/04 Javascript
Python实现拼接多张图片的方法
2014/12/01 Python
python subprocess 杀掉全部派生的子进程方法
2017/01/16 Python
老生常谈Python序列化和反序列化
2017/06/28 Python
Python编程实现双链表,栈,队列及二叉树的方法示例
2017/11/01 Python
Python可以用来做什么
2020/11/23 Python
使用CSS3在触屏上为按钮实现激活效果
2013/09/27 HTML / CSS
css3实现可滑动跳转的分页插件示例
2014/05/08 HTML / CSS
美国知名男士服饰品牌:Brooks Brothers(布克兄弟)
2016/08/25 全球购物
KEETSA环保床垫:更好的睡眠,更好的生活!
2016/11/24 全球购物
销售人员中英文自荐信
2013/09/22 职场文书
理工大学毕业生自荐信
2013/11/01 职场文书
浙江文明网签名寄语
2014/01/18 职场文书
西门豹教学反思
2014/02/04 职场文书
干部鉴定材料
2014/05/18 职场文书
新员工考核评语
2014/12/31 职场文书
护士2015年终工作总结
2015/04/29 职场文书