JS中如何判断传过来的JSON数据中是否存在某字段


Posted in Javascript onAugust 18, 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访问样式表代码
Oct 15 Javascript
浏览器的JavaScript引擎的识别方法
Oct 20 Javascript
使用js判断数组中是否包含某一元素(类似于php中的in_array())
Dec 12 Javascript
jQuery$命名冲突怎么办如何解决
Jan 16 Javascript
javascript校验价格合法性实例(必须输入2位小数)
May 05 Javascript
Jquery 监视按键,按下回车键触发某方法的实现代码
May 11 Javascript
jQuery数据类型小结(14个)
Jan 08 Javascript
使用CSS+JavaScript或纯js实现半透明遮罩效果的实例分享
May 09 Javascript
基于jquery日历价格、库存等设置插件
Jul 05 jQuery
浅谈Vue内置component组件的应用场景
Mar 27 Javascript
js实现动态时钟
Mar 12 Javascript
JavaScript冒泡算法原理与实现方法深入理解
Jun 04 Javascript
jquery中$(#form :input)与$(#form input)的区别
Aug 18 #Javascript
JQuery EasyUI 加载两次url的原因分析及解决方案
Aug 18 #Javascript
javascript ajax的5种状态介绍
Aug 18 #Javascript
jquery操作HTML5 的data-*的用法实例分享
Aug 17 #Javascript
js判断浏览器是否支持html5
Aug 17 #Javascript
一段非常简单的js判断浏览器的内核
Aug 17 #Javascript
JavaScript继承基础讲解(原型链、借用构造函数、混合模式、原型式继承、寄生式继承、寄生组合式继承)
Aug 16 #Javascript
You might like
PHP 常用的header头部定义汇总
2015/06/19 PHP
PHP下SSL加密解密、验证、签名方法(很简单)
2020/06/28 PHP
PHP设计模式之装饰器模式定义与用法简单示例
2018/08/13 PHP
php使用yield对性能提升的测试实例分析
2019/09/19 PHP
jQuery dialog 异步调用ashx,webservice数据的代码
2010/08/03 Javascript
js实现宇宙星空背景效果的方法
2015/03/03 Javascript
JS延时提示框实现方法详解
2015/11/26 Javascript
省市区三级联动jquery实现代码
2020/04/15 Javascript
Vue中定义全局变量与常量的各种方式详解
2017/08/23 Javascript
解决vue中修改了数据但视图无法更新的情况
2018/08/27 Javascript
vue2.0+vue-router构建一个简单的列表页的示例代码
2019/02/13 Javascript
JavaScript forEach中return失效问题解决方案
2020/06/01 Javascript
python函数参数*args**kwargs用法实例
2013/12/04 Python
python进阶教程之异常处理
2014/08/30 Python
Python中logging.NullHandler 的使用教程
2018/11/29 Python
python生成器与迭代器详解
2019/01/01 Python
python 实现图片旋转 上下左右 180度旋转的示例
2019/01/24 Python
Python实现的插入排序,冒泡排序,快速排序,选择排序算法示例
2019/05/04 Python
Django中如何使用sass的方法步骤
2019/07/09 Python
python进阶之自定义可迭代的类
2019/08/20 Python
Django xadmin开启搜索功能的实现
2019/11/15 Python
Django 批量插入数据的实现方法
2020/01/12 Python
Python的赋值、深拷贝与浅拷贝的区别详解
2020/02/12 Python
Python日志syslog使用原理详解
2020/02/18 Python
基于django和dropzone.js实现上传文件
2020/11/24 Python
html5 Canvas画图教程(1)—画图的基本常识
2013/01/09 HTML / CSS
html5 canvas绘制网络字体的常用方法
2019/08/26 HTML / CSS
期末总结的个人自我评价
2013/11/02 职场文书
车间工艺员岗位职责
2013/12/09 职场文书
大学生感恩父母演讲稿
2014/08/28 职场文书
2015年酒店工作总结
2015/04/28 职场文书
小组组名及励志口号
2015/12/24 职场文书
2016年小学教师政治学习心得体会
2016/01/23 职场文书
Keras在mnist上的CNN实践,并且自定义loss函数曲线图操作
2021/05/25 Python
Vue.js中v-for指令的用法介绍
2022/03/13 Vue.js
Python自动操作神器PyAutoGUI的使用教程
2022/06/16 Python