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 在光标定位的地方插入文字的插件
May 10 Javascript
jquery的ajax请求全面了解
Mar 20 Javascript
js导出table数据到excel即导出为EXCEL文档的方法
Oct 10 Javascript
FF IE浏览器修改标签透明度的方法
Jan 27 Javascript
Bootstrap实现下拉菜单效果
Apr 29 Javascript
jQuery绑定事件的几种实现方式
May 09 Javascript
AngularJS 简单应用实例
Jul 28 Javascript
Angularjs实现mvvm式的选项卡示例代码
Sep 08 Javascript
bootstrap PrintThis打印插件使用详解
Feb 20 Javascript
微信小程序实现蒙版弹出窗功能
Sep 17 Javascript
使用zrender.js绘制体温单效果
Oct 31 Javascript
JavaScript 严格模式(use strict)用法实例分析
Mar 04 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
espresso double下 咖啡粉超细时 饼压力对咖啡的影响
2021/03/03 冲泡冲煮
win7+apache+php+mysql环境配置操作详解
2013/06/10 PHP
php的memcache类分享(memcache队列)
2014/03/26 PHP
PHP之sprintf函数用法详解
2014/11/12 PHP
php使用filter_var函数判断邮箱,url,ip格式示例
2019/07/06 PHP
Alliance vs AM BO3 第二场2.13
2021/03/10 DOTA
Jquery Ajax学习实例4 向WebService发出请求,返回实体对象的异步调用
2010/03/16 Javascript
javascript随机将第一个dom中的图片添加到第二个div中示例
2013/10/08 Javascript
pc加载更多功能和移动端下拉刷新加载数据
2016/11/07 Javascript
本地Bootstrap文件字体图标引入却无法显示问题的解决方法
2020/04/18 Javascript
jQuery实现限制文本框的输入长度
2017/01/11 Javascript
jquery中关于bind()方法的使用技巧分享
2017/03/30 jQuery
Javascript(es2016) import和require用法和区别详解
2017/08/11 Javascript
jQuery实现点击DIV同时点击CheckBox,并为DIV上背景色的实例
2017/12/18 jQuery
JavaScript实现学生在线做题计时器功能
2018/12/05 Javascript
JS如何在不同平台实现多语言方式
2020/07/16 Javascript
vue实现树状表格效果
2020/12/29 Vue.js
[01:38]DOTA2辉夜杯 欢乐的观众现场采访
2015/12/26 DOTA
解决PyCharm中光标变粗的问题
2017/08/05 Python
PYTHON基础-时间日期处理小结
2018/05/05 Python
django+echart绘制曲线图的方法示例
2018/11/26 Python
用python代码将tiff图片存储到jpg的方法
2018/12/04 Python
Python实现 版本号对比功能的实例代码
2019/04/18 Python
python反编译学习之字节码详解
2019/05/19 Python
Pytorch DataLoader 变长数据处理方式
2020/01/08 Python
pycharm如何实现跨目录调用文件
2020/02/28 Python
Python分类测试代码实例汇总
2020/07/23 Python
H5 canvas中width、height和style的宽高区别详解
2018/11/02 HTML / CSS
html5实现canvas阴影效果示例
2014/05/07 HTML / CSS
世界最大的票务市场:viagogo
2017/02/16 全球购物
TripAdvisor瑞典:全球领先的旅游网站
2017/12/11 全球购物
宿舍卫生检讨书
2014/01/16 职场文书
自强之星事迹材料
2014/05/12 职场文书
幼儿园2016年感恩节活动总结
2016/04/01 职场文书
《钢铁是怎样炼成的》高中读后感
2019/08/07 职场文书
Python 一键获取电脑浏览器的账号密码
2022/05/11 Python