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语句可以不以;结尾的烦恼
Mar 08 Javascript
不用写JS也能使用EXTJS视频演示
Dec 29 Javascript
JS delegate与live浅析
Dec 21 Javascript
iframe窗口高度自适应的实现方法
Jan 08 Javascript
JavaScript数据类型之基本类型和引用类型的值
Apr 01 Javascript
微信小程序 textarea 详解及简单使用方法
Dec 05 Javascript
canvas绘制一个常用的emoji表情
Mar 30 Javascript
Three.js如何实现雾化效果示例代码
Sep 27 Javascript
详解在vue-test-utils中mock全局对象
Nov 07 Javascript
jQuery实现的点击图片居中放大缩小功能示例
Jan 16 jQuery
JavaScript遍历数组的三种方法map、forEach与filter实例详解
Feb 27 Javascript
Vue2项目中对百度地图的封装使用详解
Jun 16 Vue.js
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 小心urldecode引发的SQL注入漏洞
2011/10/27 PHP
在WordPress中实现评论头像的自定义默认和延迟加载
2015/11/24 PHP
PHP ADODB生成下拉列表框功能示例
2018/05/29 PHP
Laravel中正确地返回HTTP状态码方法示例
2019/09/10 PHP
javascript中的对象和数组的应用技巧
2007/01/07 Javascript
js异或加解密效果代码
2008/06/25 Javascript
JavaScript 选中文字并响应获取的实现代码
2011/08/28 Javascript
node.js中的path.join方法使用说明
2014/12/08 Javascript
JavaScript正则表达式之multiline属性的应用
2015/06/16 Javascript
JS组件系列之使用HTML标签的data属性初始化JS组件
2016/09/14 Javascript
js实现文字选中分享功能
2017/01/25 Javascript
vue.js选中动态绑定的radio的指定项
2017/06/02 Javascript
JS随机排序数组实现方法分析
2017/10/11 Javascript
nodejs(officegen)+vue(axios)在客户端导出word文档的方法
2018/07/31 NodeJs
用图片替换checkbox原始样式并实现同样的功能
2018/11/15 Javascript
[54:28]EG vs OG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
用实例说明python的*args和**kwargs用法
2013/11/01 Python
python实现360皮肤按钮控件示例
2014/02/21 Python
win7 下搭建sublime的python开发环境的配置方法
2014/06/18 Python
python使用两种发邮件的方式smtp和outlook示例
2017/06/02 Python
Python标准库之itertools库的使用方法
2017/09/07 Python
Python 3.x 安装opencv+opencv_contrib的操作方法
2018/04/02 Python
Python采集代理ip并判断是否可用和定时更新的方法
2018/05/07 Python
解决新版Pycharm中Matplotlib图像不在弹出独立的显示窗口问题
2019/01/15 Python
pyqt5 使用cv2 显示图片,摄像头的实例
2019/06/27 Python
简单了解python关系(比较)运算符
2019/07/08 Python
python实现把二维列表变为一维列表的方法分析
2019/10/08 Python
python 爬取小说并下载的示例
2020/12/07 Python
澳大利亚宠物食品和药物在线:Jumbo Pets
2018/03/24 全球购物
JAVA的事件委托机制和垃圾回收机制
2014/09/07 面试题
Java如何读取CLOB字段
2013/10/10 面试题
合同协议书格式
2014/04/18 职场文书
绘画专业自荐信
2014/07/04 职场文书
营运督导岗位职责
2015/04/10 职场文书
2015年党员发展工作总结
2015/05/13 职场文书
领导干部学习三严三实心得体会
2016/01/05 职场文书