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 相关文章推荐
json字符串之间的相互转换示例代码
Aug 21 Javascript
让html页面不缓存js的实现方法
Oct 31 Javascript
由ReactJS的Hello world说开来
Jul 02 Javascript
在WordPress中加入Google搜索功能的简单步骤讲解
Jan 04 Javascript
JavaScript中使用数组方法汇总
Feb 16 Javascript
jQuery each函数源码分析
May 25 Javascript
vue中如何实现变量和字符串拼接
Jun 19 Javascript
微信小程序实现动态改变view标签宽度和高度的方法【附demo源码下载】
Dec 05 Javascript
element 结合vue 在表单验证时有值却提示错误的解决办法
Jan 22 Javascript
解决vue-cli项目webpack打包后iconfont文件路径的问题
Sep 01 Javascript
JavaScript ES6箭头函数使用指南
Dec 30 Javascript
js仿360开机效果
Dec 26 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
加速XP搜索功能堪比vista
2007/03/22 PHP
PHP中imagick函数的中文解释
2015/01/21 PHP
php获取指定范围内最接近数的方法
2015/06/02 PHP
PHP APP微信提现接口代码
2018/09/30 PHP
jQuery+CSS 实现随滚动条增减的汽水瓶中的液体效果
2011/09/26 Javascript
Extjs中使用extend(js继承) 的代码
2012/03/15 Javascript
jQuery实现仿百度首页滑动伸缩展开的添加服务效果代码
2015/09/09 Javascript
JavaScript对象创建模式实例汇总
2016/10/03 Javascript
Angular指令封装jQuery日期时间插件datetimepicker实现双向绑定示例
2017/01/22 Javascript
javascript实现复选框全选或反选
2017/02/04 Javascript
layer弹窗插件操作方法详解
2017/05/19 Javascript
理解 javascript 中的函数表达式与函数声明
2017/07/07 Javascript
AngularJS创建一个上传照片的指令实例代码
2018/02/24 Javascript
js 将线性数据转为树形的示例代码
2019/05/28 Javascript
JS随机密码生成算法
2019/09/23 Javascript
vue使用原生swiper代码实例
2020/02/05 Javascript
Javascript节流函数throttle和防抖函数debounce
2020/12/03 Javascript
vuex的使用和简易实现
2021/01/07 Vue.js
[03:24]DOTA2超级联赛专访hao 大翻盘就是逆袭
2013/05/24 DOTA
Python最基本的数据类型以及对元组的介绍
2015/04/14 Python
Python中有趣在__call__函数
2015/06/21 Python
python+splinter自动刷新抢票功能
2018/09/25 Python
pandas修改DataFrame列名的实现方法
2019/02/22 Python
Python(PyS60)实现简单语音整点报时
2019/11/18 Python
Python:合并两个numpy矩阵的实现
2019/12/02 Python
HTML5在线预览PDF的示例代码
2017/09/14 HTML / CSS
英国派对礼服和连衣裙购物网站:TFNC London
2018/07/07 全球购物
俄罗斯汽车零件和配件在线商店:CarvilleShop
2019/11/29 全球购物
Fnac西班牙官网:法国文化和电子产品零售商
2021/03/14 全球购物
JD Sports丹麦:英国领先的运动时尚零售商
2020/11/24 全球购物
如何用Python来进行查询和替换一个文本字符串
2014/01/02 面试题
企业消防安全制度
2014/02/02 职场文书
个人贷款承诺书
2014/03/28 职场文书
nginx优化的六点方法
2021/03/31 Servers
python中subplot大小的设置步骤
2021/06/28 Python
Python实现信息管理系统
2022/06/05 Python