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 相关文章推荐
基于jquery的二级联动菜单实现代码
Apr 25 Javascript
jQuery+AJAX实现网页无刷新上传
Feb 22 Javascript
js实现适用于素材网站的黑色多级菜单导航条效果
Aug 24 Javascript
基于javascript实现图片懒加载
Jan 05 Javascript
jquery实现上传文件大小类型的验证例子(推荐)
Jun 25 Javascript
JavaScript遍历Json串浏览器输出的结果不统一问题
Nov 03 Javascript
Async Validator 异步验证使用说明
Jul 03 Javascript
JS仿QQ好友列表展开、收缩功能(第二篇)
Jul 07 Javascript
Vue导出页面为PDF格式的实现思路
Jul 31 Javascript
在微信小程序中渲染HTML内容3种解决方案及分析与问题解决
Jan 12 Javascript
javascript 原型与原型链的理解及应用实例分析
Feb 10 Javascript
vue 自定义组件的写法与用法详解
Mar 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引用传值实例详解学习
2013/11/06 PHP
ThinkPHP3.1新特性之对Ajax的支持更加完善
2014/06/19 PHP
用PHP代码给图片加水印
2015/07/01 PHP
php获取一定范围内取N个不重复的随机数
2016/05/28 PHP
PHP简单日历实现方法
2016/07/20 PHP
PHP设计模式之观察者模式定义与用法示例
2018/08/04 PHP
关于js拖拽上传 [一个拖拽上传修改头像的流程]
2011/07/13 Javascript
ToolTips JQEURY插件之简洁小提示框效果
2011/11/19 Javascript
Javascript图像处理—为矩阵添加常用方法
2012/12/27 Javascript
iframe跨域通信封装详解
2015/08/11 Javascript
jQuery实现带有动画效果的回到顶部和底部代码
2015/11/04 Javascript
判断输入的字符串是否是日期格式的简单方法
2016/07/11 Javascript
JavaScript中object和Object的区别(详解)
2017/02/27 Javascript
理解 JavaScript EventEmitter
2018/03/29 Javascript
JavaScript简单实现动态改变HTML内容的方法示例
2018/12/25 Javascript
python模拟新浪微博登陆功能(新浪微博爬虫)
2013/12/24 Python
python读写二进制文件的方法
2015/05/09 Python
Python实现模拟登录网易邮箱的方法示例
2018/07/05 Python
详解python中sort排序使用
2019/03/23 Python
python使用socket 先读取长度,在读取报文内容示例
2019/09/26 Python
python 读写文件包含多种编码格式的解决方式
2019/12/20 Python
python 统计文件中的字符串数目示例
2019/12/24 Python
Python爬取阿拉丁统计信息过程图解
2020/05/12 Python
opencv 图像腐蚀和图像膨胀的实现
2020/07/07 Python
canvas 实现 github404动态效果的示例代码
2017/11/15 HTML / CSS
如何配置、使用和清除Smarty缓存
2015/12/23 面试题
请编程遍历页面上所有 TextBox 控件并给它赋值为 string.Empty
2015/12/03 面试题
大学毕业的自我鉴定
2013/10/08 职场文书
生态学毕业生自荐信
2013/10/27 职场文书
廉洁家庭事迹材料
2014/05/15 职场文书
人代会标语
2014/06/30 职场文书
2014基建处领导班子“四风”对照检查材料思想汇报
2014/10/04 职场文书
优秀学生干部主要事迹材料
2015/11/04 职场文书
工伤调解协议书
2016/03/21 职场文书
餐饮行业关注的9大营销策略
2019/08/26 职场文书
logback如何自定义日志存储
2021/08/30 Java/Android