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 性能优化指南(2)
May 21 Javascript
JS input文本框禁用右键和复制粘贴功能的代码
Apr 15 Javascript
javascript实现在线客服效果
Jul 15 Javascript
基于jquery实现鼠标滚轮驱动的图片切换效果
Oct 26 Javascript
jQuery鼠标悬浮链接弹出跟随图片实例代码
Jan 08 Javascript
AngularJS教程 ng-style 指令简单示例
Aug 03 Javascript
Node.js + Redis Sorted Set实现任务队列
Sep 19 Javascript
浅谈Angular4中常用管道
Sep 27 Javascript
父组件中vuex方法更新state子组件不能及时更新并渲染的完美解决方法
Apr 25 Javascript
微信小程序实现上传word、txt、Excel、PPT等文件功能
May 23 Javascript
JavaScript Array对象基本方法详解
Sep 03 Javascript
解决Vue keep-alive 调用 $destory() 页面不再被缓存的情况
Oct 30 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
改进的IP计数器
2006/10/09 PHP
一个简单php扩展介绍与开发教程
2010/08/19 PHP
php5.5中类级别的常量使用介绍
2013/10/02 PHP
php用户注册页面利用js进行表单验证具体实例
2013/10/17 PHP
详解PHP5.6.30与Apache2.4.x配置
2017/06/02 PHP
用js判断浏览器是否是IE的比较好的办法
2007/05/08 Javascript
JQuery的常用选择器、过滤器、方法全面介绍
2016/05/25 Javascript
Layui 设置select下拉框自动选中某项的方法
2018/08/14 Javascript
解决Vue-cli npm run build生产环境打包,本地不能打开的问题
2018/09/20 Javascript
vue中v-text / v-html使用实例代码详解
2019/04/02 Javascript
Layui之table中的radio在切换分页时无法记住选中状态的解决方法
2019/09/02 Javascript
[47:45]Liquid vs OG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Phantomjs抓取渲染JS后的网页(Python代码)
2016/05/13 Python
用Python登录好友QQ空间点赞的示例代码
2017/11/04 Python
对python中dict和json的区别详解
2018/12/18 Python
对python操作kafka写入json数据的简单demo分享
2018/12/27 Python
python单线程文件传输的实例(C/S)
2019/02/13 Python
详解python内置常用高阶函数(列出了5个常用的)
2020/02/21 Python
Python读取文件内容为字符串的方法(多种方法详解)
2020/03/04 Python
django models里数据表插入数据id自增操作
2020/07/15 Python
matplotlib对象拾取事件处理的实现
2021/01/14 Python
使用CSS3实现input多选框自定义样式的方法示例
2019/07/19 HTML / CSS
ALDO加拿大官网:加拿大女鞋品牌
2018/12/22 全球购物
高中生毕业自我鉴定范文
2013/12/22 职场文书
导游实习生自荐书
2014/01/28 职场文书
董事长秘书职责
2014/01/31 职场文书
会计系毕业生求职信
2014/05/28 职场文书
销售人员求职信
2014/07/22 职场文书
公共艺术专业自荐信
2014/09/01 职场文书
2014年国庆节庆祝建国65周年比赛演讲稿
2014/09/21 职场文书
民主生活会剖析材料
2014/09/30 职场文书
期末个人总结范文
2015/02/13 职场文书
读《瓦尔登湖》有感:每个人都需要一个瓦尔登湖
2019/10/17 职场文书
python三子棋游戏
2022/05/04 Python
Python实现数据的序列化操作详解
2022/07/07 Python
Vue深入理解插槽slot的使用
2022/08/05 Vue.js