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中Math.SQRT2属性的使用详解
Jun 14 Javascript
javascript中去除数组重复元素的实现方法【实例】
Apr 12 Javascript
js判断某个字符出现的次数的简单实例
Jun 03 Javascript
bootstrap 下拉多选框进行多选传值问题代码分析
Feb 14 Javascript
使用Math.max,Math.min获取数组中的最值实例
Apr 25 Javascript
jQuery Ajax自定义分页组件(jquery.loehpagerv1.0)实例详解
May 01 jQuery
关于javascript sort()排序你可能忽略的一点理解
Jul 18 Javascript
JS实现图片手风琴效果
Apr 17 Javascript
原生js实现移动端触摸轮播的示例代码
Dec 22 Javascript
基于vue-cli 打包时抽离项目相关配置文件详解
Mar 07 Javascript
谈谈JavaScript中的函数
Sep 08 Javascript
详解JVM系列之内存模型
Jun 10 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
《五等分的花嫁》漫画完结!2020年10月第2期TV动画制作组换血!
2020/03/06 日漫
PHP限制HTML内容中图片必须是本站的方法
2015/06/16 PHP
浅析Yii2集成富文本编辑器redactor实例教程
2016/04/25 PHP
php+ajax 文件上传代码实例
2019/03/18 PHP
asp 的 分词实现代码
2007/05/24 Javascript
javascript innerHTML、outerHTML、innerText、outerText的区别
2008/11/24 Javascript
$.ajax返回的JSON无法执行success的解决方法
2011/09/09 Javascript
JQuery一种取同级值的方式(比如你在GridView中)
2012/03/15 Javascript
javascript动态加载二
2012/08/22 Javascript
jquery操作对象数组元素方法详解
2014/11/26 Javascript
AngularJS使用angular-formly进行表单验证
2015/12/27 Javascript
JS实现动态增加和删除li标签行的实例代码
2016/10/16 Javascript
JavaScript注入漏洞的原理及防范(详解)
2016/12/04 Javascript
jq stop()和:is(:animated)的用法及区别(详解)
2017/02/12 Javascript
jQuery实现大图轮播
2017/02/13 Javascript
js实现做通讯录的索引滑动显示效果和滑动显示锚点效果
2017/02/18 Javascript
JavaScript正则表达式简单实用实例
2017/06/23 Javascript
js学习总结_轮播图之渐隐渐现版(实例讲解)
2017/07/17 Javascript
微信小程序template模板实例详解
2017/10/27 Javascript
vue实现微信二次分享以及自定义分享的示例
2019/03/20 Javascript
使用vue中的混入mixin优化表单验证插件问题
2019/07/02 Javascript
Vue使用自定义指令实现拖拽行为实例分析
2020/06/06 Javascript
toString.call()通用的判断数据类型方法示例
2020/08/28 Javascript
[03:17]2014DOTA2 国际邀请赛中国区预选赛 四强专访
2014/05/23 DOTA
详解Python中for循环是如何工作的
2017/06/30 Python
基于循环神经网络(RNN)的古诗生成器
2018/03/26 Python
np.dot()函数的用法详解
2020/01/17 Python
pyqt5数据库使用详细教程(打包解决方案)
2020/03/25 Python
Django如何在不停机的情况下创建索引
2020/08/02 Python
Django URL参数Template反向解析
2020/11/24 Python
俄罗斯在线服装店:STOLNIK
2021/03/07 全球购物
酒店工作职员求职简历的自我评价
2013/10/23 职场文书
电子专业毕业生自荐信
2014/05/25 职场文书
《云雀的心愿》教学反思
2016/02/23 职场文书
低版本Druid连接池+MySQL驱动8.0导致线程阻塞、性能受限
2021/07/01 MySQL
python通过新建环境安装tfx的问题
2022/05/20 Python