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 相关文章推荐
Textbox控件注册回车事件及触发按钮提交事件具体实现
Mar 04 Javascript
jquery实现更改表格行顺序示例
Apr 30 Javascript
解决html按钮切换绑定不同函数后点击时执行多次函数问题
May 14 Javascript
JavaScript实现简单的星星评分效果
May 18 Javascript
Bootstrap响应式表格详解
May 23 Javascript
浅谈struts1 & jquery form 文件异步上传
May 25 jQuery
JavaScript获取移动设备型号的实现代码(JS获取手机型号和系统)
Mar 10 Javascript
element-ui upload组件多文件上传的示例代码
Oct 17 Javascript
深入理解基于vue-cli的webpack打包优化实践及探索
Oct 14 Javascript
node.js express捕获全局异常的三种方法实例分析
Dec 27 Javascript
深入浅析JavaScript中的in关键字和for-in循环
Apr 20 Javascript
swiperjs实现导航与tab页的联动
Dec 13 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设计模式之单例、多例设计模式的应用分析
2013/06/30 PHP
Javascript的IE和Firefox兼容性汇编(zz)
2007/02/02 Javascript
js 数值项目的格式化函数代码
2010/05/14 Javascript
js 全兼容可高亮二级缓冲折叠菜单
2010/06/04 Javascript
Js从头学起(基本数据类型和引用类型的参数传递详细分析)
2012/02/16 Javascript
JavaScript常用全局属性与方法记录积累
2013/07/03 Javascript
JS实现关键字搜索时的相关下拉字段效果
2014/08/05 Javascript
javascript动态创建及删除元素的方法
2014/12/22 Javascript
JavaScript实现按照指定长度为数字前面补零输出的方法
2015/03/19 Javascript
javascript实现点击单选按钮链接转向对应网址的方法
2015/08/12 Javascript
细说webpack源码之compile流程-入口函数run
2017/12/26 Javascript
vue vuex vue-rouert后台项目——权限路由(适合初学)
2017/12/29 Javascript
Es6 Generator函数详细解析
2018/02/24 Javascript
Vue中"This dependency was not found"问题的解决方法
2018/06/19 Javascript
微信小程序定位当前城市的方法
2018/07/19 Javascript
如何去除富文本中的html标签及vue、react、微信小程序中的过滤器
2018/11/21 Javascript
8个非常实用的Vue自定义指令
2020/12/15 Vue.js
在Python中操作列表之list.extend()方法的使用
2015/05/20 Python
Python 16进制与中文相互转换的实现方法
2018/07/09 Python
softmax及python实现过程解析
2019/09/30 Python
Python re正则表达式元字符分组()用法分享
2020/02/10 Python
浅谈keras.callbacks设置模型保存策略
2020/06/18 Python
python开发入门——列表生成式
2020/09/03 Python
Pycharm安装python库的方法
2020/11/24 Python
SISLEY希思黎官方旗舰店:享誉全球的奢华植物美容品牌
2018/04/25 全球购物
美国婴儿和儿童服装购物网站:PatPat
2020/10/01 全球购物
不用游标的SQL语句有哪些
2012/09/07 面试题
运动会开幕式邀请函
2014/02/03 职场文书
《陋室铭》教学反思
2014/02/26 职场文书
群众路线党员自我评议范文2014
2014/09/24 职场文书
房屋出售授权委托书
2014/10/12 职场文书
硕士毕业答辩开场白
2015/05/27 职场文书
怎样写观后感
2015/06/19 职场文书
先进党支部事迹材料2016
2016/02/26 职场文书
《没有任何借口》读后感:完美的执行能力
2020/01/07 职场文书
MYSQL如何查看操作日志详解
2022/05/30 MySQL