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 相关文章推荐
firefox下对ajax的onreadystatechange的支持情况分析
Dec 14 Javascript
Extjs显示从数据库取出时间转换JSON后的出现问题
Nov 20 Javascript
THREE.JS入门教程(4)创建粒子系统
Jan 24 Javascript
将list转换为json失败的原因
Dec 17 Javascript
Extjs表单常见验证小结
Mar 07 Javascript
jQuery拖拽排序插件制作拖拽排序效果(附源码下载)
Feb 23 Javascript
Bootstrap表单组件教程详解
Apr 26 Javascript
js实现StringBuffer的简单实例
Sep 02 Javascript
详解使用Vue.Js结合Jquery Ajax加载数据的两种方式
Jan 10 Javascript
Vue实现简单的拖拽效果
Aug 25 Javascript
vue 手机物理监听键+退出提示代码
Sep 09 Javascript
【js设计模式】SOLID五大设计原则
Mar 24 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下将图片以二进制存入mysql数据库中并显示的实现代码
2010/05/27 PHP
PHP Undefined index报错的修复方法
2011/07/17 PHP
PJBlog插件 防刷新的在线播放器
2006/10/25 Javascript
JS小框架 fly javascript framework
2009/11/26 Javascript
JavaScript 的继承
2011/10/01 Javascript
IE6背景图片不缓存问题解决方案及图片使用策略多个方法小结
2012/05/14 Javascript
JS返回上一页实例代码通过图片和按钮分别实现
2013/08/16 Javascript
zepto中使用swipe.js制作轮播图附swipeUp,swipeDown不起效果问题
2015/08/27 Javascript
10个很棒的jQuery代码片段
2015/09/24 Javascript
PHP+jquery+ajax实现分页
2016/12/09 Javascript
BootStrap Tooltip插件源码解析
2016/12/27 Javascript
js cookie实现记住密码功能
2017/01/17 Javascript
详解Javascript中DOM的范围
2017/02/13 Javascript
移动端网页开发调试神器Eruda的介绍与使用技巧
2017/10/30 Javascript
微信小程序checkbox组件使用详解
2018/01/31 Javascript
vue左侧菜单,树形图递归实现代码
2018/08/24 Javascript
VUE路由动态加载实例代码讲解
2019/08/26 Javascript
react中Suspense的使用详解
2019/09/01 Javascript
Python内置函数delattr的具体用法
2017/11/23 Python
Centos7 Python3下安装scrapy的详细步骤
2018/03/15 Python
python turtle 绘制太极图的实例
2019/12/18 Python
Python如何使用队列方式实现多线程爬虫
2020/05/12 Python
python实现b站直播自动发送弹幕功能
2021/02/20 Python
美国网上鞋子零售商:Dr. Scholl’s Shoes
2017/11/17 全球购物
巴西婴儿用品商店:Bebe Store
2017/11/23 全球购物
出门问问全球官方商城:Tichome音箱和TicWatch智能手表
2017/12/02 全球购物
Larsson & Jennings官网:现代瑞士钟表匠
2018/03/20 全球购物
工商管理专业实习大学生自我鉴定
2013/09/19 职场文书
市级文明单位申报材料
2014/05/07 职场文书
党的群众路线教育实践活动个人整改方案
2014/09/21 职场文书
2015年中职班主任工作总结
2015/05/25 职场文书
卢旺达饭店观后感
2015/06/05 职场文书
婚礼家长致辞
2015/07/27 职场文书
2019年“我为祖国点赞”演讲稿(3篇)
2019/09/26 职场文书
分布式Redis Cluster集群搭建与Redis基本用法
2022/02/24 Redis
MySQL中order by的执行过程
2022/06/05 MySQL