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 相关文章推荐
extjs grid设置某列背景颜色和字体颜色的实现方法
Sep 06 Javascript
js toFixed()方法的重写实现精度的统一
Mar 06 Javascript
javascript实现类似java中getClass()得到对象类名的方法
Jul 27 Javascript
js基本算法:冒泡排序,二分查找的简单实例
Oct 08 Javascript
Angularjs处理页面闪烁的解决方法
Mar 09 Javascript
Vue axios 中提交表单数据(含上传文件)
Jul 06 Javascript
vue loadmore 组件滑动加载更多源码解析
Jul 19 Javascript
layui数据表格跨行自动合并的例子
Sep 02 Javascript
layui 对table中的数据进行转义的实例
Sep 12 Javascript
微信小程序个人中心的列表控件实现代码
Apr 26 Javascript
js实现贪吃蛇小游戏(加墙)
Jul 31 Javascript
JS实现扫雷项目总结
May 19 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 curl模拟登录带验证码的网站
2015/11/30 PHP
Zend Framework教程之资源(Resources)用法实例详解
2016/03/14 PHP
基于PHP实现通过照片获取ip地址
2016/04/26 PHP
Javascript玩转继承(一)
2014/05/08 Javascript
js动态往表格的td中添加图片并注册事件
2014/06/12 Javascript
两种方法实现在HTML页面加载完毕后运行某个js
2014/06/16 Javascript
jQuery之Deferred对象详解
2014/09/04 Javascript
javascript实现实时输出当前的时间
2015/04/27 Javascript
浅析JS运动
2015/12/28 Javascript
AngularJS基础 ng-readonly 指令简单示例
2016/08/02 Javascript
js实现显示手机号码效果
2017/03/09 Javascript
纯js实现动态时间显示
2020/09/07 Javascript
Easyui Datagrid自定义按钮列(最后面的操作列)
2017/07/13 Javascript
微信小程序-getUserInfo回调的实例详解
2017/10/27 Javascript
Vue中使用vee-validate表单验证的方法
2018/05/09 Javascript
layui 监听表格复选框选中值的方法
2018/08/15 Javascript
使用vue2实现带地区编号和名称的省市县三级联动效果
2018/11/05 Javascript
JS二级菜单不同实现方法分析【4种方法】
2018/12/21 Javascript
实用的 vue tags 创建缓存导航的过程实现
2020/12/03 Vue.js
详解python中的json的基本使用方法
2016/12/21 Python
python放大图片和画方格实现算法
2018/03/30 Python
Numpy掩码式数组详解
2018/04/17 Python
使用python实现男神女神颜值打分系统(推荐)
2019/10/31 Python
Python命令行click参数用法解析
2019/12/19 Python
pytorch中交叉熵损失(nn.CrossEntropyLoss())的计算过程详解
2020/01/02 Python
python scatter函数用法实例详解
2020/02/11 Python
美国保健品专家:Life Extension
2018/05/04 全球购物
求两个数的乘积和商数,该作用由宏定义来实现
2013/03/13 面试题
邮政员工辞职信
2014/01/16 职场文书
圣诞节红领巾广播稿
2014/02/03 职场文书
《动手做做看》教学反思
2014/04/09 职场文书
出国留学计划书
2014/04/27 职场文书
爱护公共设施的标语
2014/06/24 职场文书
2014年食品安全工作总结
2014/12/04 职场文书
公务员政审材料范文
2014/12/23 职场文书
Redis的字符串是如何实现的
2021/10/24 Redis