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 事件小结 表格区别
Aug 13 Javascript
js实现的跟随鼠标移动的时钟效果(中英文日期显示)
Jan 17 Javascript
jQuery EasyUI API 中文文档 - DataGrid数据表格
Nov 17 Javascript
javascript 获取网页标题代码实例
Jan 22 Javascript
node.js中使用q.js实现api的promise化
Sep 17 Javascript
JavaScript获取按钮所在form表单id的方法
Apr 02 Javascript
浅谈JavaScript字符串与数组
Jun 03 Javascript
浅谈如何实现easyui的datebox格式化
Jun 12 Javascript
jQuery的ajax下载blob文件
Jul 21 Javascript
整理关于Bootstrap导航的慕课笔记
Mar 29 Javascript
vue实现重置表单信息为空的方法
Sep 29 Javascript
vue路由教程之静态路由
Sep 03 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
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
2020/04/04 PHP
JavaScript 基础问答三
2008/12/03 Javascript
用jquery实现学校的校历(asp.net+jquery ui 1.72)
2010/01/01 Javascript
jQuery setTimeout传递字符串参数报错的解决方法
2014/06/09 Javascript
jquery ui bootstrap 实现自定义风格
2014/11/14 Javascript
JS实现超简单的鼠标拖动效果
2015/11/02 Javascript
js实现div模拟模态对话框展现URL内容
2016/05/27 Javascript
js自调用匿名函数的三种写法(推荐)
2016/08/19 Javascript
网站发布后Bootstrap框架引用woff字体无法正常显示的解决方法
2016/11/24 Javascript
AngularJS中scope的绑定策略实例分析
2017/10/30 Javascript
微信小程序实现点击按钮修改view标签背景颜色功能示例【附demo源码下载】
2017/12/06 Javascript
JavaScript创建对象方法实例小结
2018/09/03 Javascript
vue elementUI 表单校验功能之数组多层嵌套
2019/06/04 Javascript
node.js的http.createServer过程深入解析
2019/06/06 Javascript
搭建一个nodejs脚手架的方法步骤
2019/06/28 NodeJs
ES10的13个新特性示例(小结)
2019/09/23 Javascript
vue随机验证码组件的封装实现
2020/02/19 Javascript
JavaScript仿京东秒杀倒计时
2020/03/17 Javascript
[00:32]DOTA2上海特级锦标赛 Ehome战队宣传片
2016/03/03 DOTA
pyqt和pyside开发图形化界面
2014/01/22 Python
以Flask为例讲解Python的框架的使用方法
2015/04/29 Python
Python模拟登陆实现代码
2017/06/14 Python
利用python批量给云主机配置安全组的方法教程
2017/06/21 Python
Django项目中包含多个应用时对url的配置方法
2018/05/30 Python
TensorFlow数据输入的方法示例
2018/06/19 Python
Pycharm代码无法复制,无法选中删除,无法编辑的解决方法
2018/10/22 Python
解决vscode python print 输出窗口中文乱码的问题
2018/12/03 Python
Python如何爬取微信公众号文章和评论(基于 Fiddler 抓包分析)
2019/06/28 Python
windows下的pycharm安装及其设置中文菜单
2020/04/23 Python
Django权限设置及验证方式
2020/05/13 Python
Django 解决model 反向引用中的related_name问题
2020/05/19 Python
深入CSS3 动画效果的总结详解
2013/05/09 HTML / CSS
html5 分层屏幕适配的方法
2018/03/16 HTML / CSS
计算机专业推荐信范文
2013/11/20 职场文书
公司更名通知函
2015/04/24 职场文书
Python使用Kubernetes API访问集群
2021/05/30 Python