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 相关文章推荐
js中将多个语句写成一个语句的两种方法小结
Dec 08 Javascript
jquery ajax 登录验证实现代码
Sep 23 Javascript
js Html结构转字符串形式显示代码
Nov 15 Javascript
防止jQuery ajax Load使用缓存的方法小结
Feb 22 Javascript
js常用数组操作方法简明总结
Jun 20 Javascript
javascript实现瀑布流自适应遇到的问题及解决方案
Jan 28 Javascript
jQuery扩展实现text提示还能输入多少字节的方法
Nov 28 Javascript
JQuery获取鼠标进入和离开容器的方向
Dec 29 Javascript
原生js实现返回顶部缓冲效果
Jan 18 Javascript
让Vue也可以使用Redux的方法
May 23 Javascript
一个Vue页面的内存泄露分析详解
Jun 25 Javascript
JS数组属性去重并校验重复数据
Jan 10 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程序员工具
2008/05/26 PHP
PHP setcookie() cannot modify header information 的解决方法
2009/01/09 PHP
php下将XML转换为数组
2010/01/01 PHP
js限制checkbox勾选的个数以及php获取多个checkbbox的方法深入解析
2013/07/18 PHP
Win7 64位系统下PHP连接Oracle数据库
2014/08/20 PHP
PHP速成大法
2015/01/30 PHP
Yii2如何批量添加数据
2016/05/17 PHP
php 一维数组的循环遍历实现代码
2017/04/10 PHP
PHP中十六进制颜色与RGB颜色值互转的方法
2019/03/18 PHP
不一样的文字闪烁 轮番闪烁
2009/11/11 Javascript
JavaScript 学习笔记(七)字符串的连接
2009/12/31 Javascript
JavaScript.Encode手动解码技巧
2010/07/14 Javascript
TimergliderJS 一个基于jQuery的时间轴插件
2011/12/07 Javascript
30个让人兴奋的视差滚动(Parallax Scrolling)效果网站
2012/03/04 Javascript
让AJAX不依赖后端接口实现方案
2012/12/03 Javascript
原生JS可拖动弹窗效果实例代码
2013/11/09 Javascript
基于javascript实现右下角浮动广告效果
2016/01/08 Javascript
AngularJS基础 ng-cloak 指令简单示例
2016/08/01 Javascript
jquery 正整数数字校验正则表达式
2017/01/10 Javascript
基于Vue的SPA动态修改页面title的方法(推荐)
2018/01/02 Javascript
vue中使用iview自定义验证关键词输入框问题及解决方法
2018/03/26 Javascript
vue实现图片预览组件封装与使用
2019/07/13 Javascript
Python脚本实现Web漏洞扫描工具
2016/10/25 Python
python+matplotlib绘制饼图散点图实例代码
2018/01/20 Python
python通过微信发送邮件实现电脑关机
2018/06/20 Python
对Python3 序列解包详解
2019/02/16 Python
使用Python轻松完成垃圾分类(基于图像识别)
2019/07/09 Python
利用Python检测URL状态
2019/07/31 Python
如何为Python终端提供持久性历史记录
2019/09/03 Python
canvas线条的属性详解
2018/03/27 HTML / CSS
信息技术专业大学生个人的自我评价
2013/10/05 职场文书
电大毕业生自我鉴定
2014/04/10 职场文书
森林病虫害防治方案
2014/06/02 职场文书
入党申请书格式
2019/06/20 职场文书
详解Laravel服务容器的优势
2021/05/29 PHP
win10拖拽文件时崩溃怎么解决?win10文件不能拖拽问题解决方法
2022/08/14 数码科技