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制作 随机弹跳的小球特效
Feb 01 Javascript
jquery实现相册一下滑动两次的方法
Feb 09 Javascript
JS+CSS实现可以凹陷显示选中单元格的方法
Mar 02 Javascript
JS更改select内option属性的方法
Oct 14 Javascript
js CSS3实现卡牌旋转切换效果
Jul 04 Javascript
angularjs2中父子组件的数据传递的实例代码
Jul 05 Javascript
Angular中使用MathJax遇到的一些问题
Dec 15 Javascript
JavaScript数组去重算法实例小结
May 07 Javascript
简单两步使用node发送qq邮件的方法
Mar 01 Javascript
微信小程序实现按字母排列选择城市功能
Nov 25 Javascript
详解三种方式在React中解决绑定this的作用域问题并传参
Aug 18 Javascript
js实现筛选功能
Nov 24 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
我常用的几个类
2006/10/09 PHP
php 常用字符串函数总结
2008/03/15 PHP
SWFUpload与CI不能正确上传识别文件MIME类型解决方法分享
2011/04/18 PHP
解析zend studio中直接导入svn中的项目的方法步骤
2013/06/21 PHP
php获取当前时间的毫秒数的方法
2014/01/26 PHP
php中的四舍五入函数代码(floor函数、ceil函数、round与intval)
2014/07/14 PHP
ThinkPHP中使用ajax接收json数据的方法
2014/12/18 PHP
Yii2如何批量添加数据
2016/05/17 PHP
谈谈从phpinfo中能获取哪些值得注意的信息
2017/03/28 PHP
身份证号码前六位所代表的省,市,区, 以及地区编码下载
2007/04/12 Javascript
7个JS基础知识总结
2014/03/05 Javascript
利用js制作html table分页示例(js实现分页)
2014/04/25 Javascript
jquery获取当前元素索引值用法实例
2015/06/10 Javascript
jQuery插件passwordStrength密码强度指标详解
2016/06/24 Javascript
Angular学习笔记之angular的$filter服务浅析
2016/11/12 Javascript
js/jq仿window文件夹框选操作插件
2017/03/08 Javascript
vue如何引用其他组件(css和js)
2017/04/13 Javascript
Angular 4.x+Ionic3踩坑之Ionic3.x pop反向传值详解
2018/03/13 Javascript
vue的keep-alive用法技巧
2019/08/15 Javascript
Javascript和jquery在selenium的使用过程
2019/10/31 jQuery
Vue组件通信$attrs、$listeners实现原理解析
2020/09/03 Javascript
[01:20]DOTA2 2017国际邀请赛冠军之路无止竞
2017/06/19 DOTA
[39:46]完美世界DOTA2联赛PWL S2 LBZS vs Rebirth 第二场 11.25
2020/11/25 DOTA
Python中装饰器的一个妙用
2015/02/08 Python
python定间隔取点(np.linspace)的实现
2019/11/27 Python
pycharm通过ssh连接远程服务器教程
2020/02/12 Python
Python并发concurrent.futures和asyncio实例
2020/05/04 Python
浅谈python 类方法/静态方法
2020/09/18 Python
西班牙用户之间买卖视频游戏的平台:Wakkap
2020/03/21 全球购物
煤矿安全协议书
2014/08/20 职场文书
实习介绍信模板
2015/01/30 职场文书
物业保洁员岗位职责
2015/02/13 职场文书
2015年秋季小学开学标语
2015/07/16 职场文书
使用tensorflow 实现反向传播求导
2021/05/26 Python
Java练习之潜艇小游戏的实现
2022/03/16 Java/Android
NoSQL优缺点与MongoDB数据库简介
2022/06/05 MongoDB