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 03 Javascript
js日期联动示例
May 02 Javascript
javascript实现网页屏蔽Backspace事件,输入框不屏蔽
Jul 21 Javascript
jQuery新窗口打开外链接
Jul 21 Javascript
AngularJs ng-route路由详解及实例代码
Sep 14 Javascript
js学习总结_轮播图之渐隐渐现版(实例讲解)
Jul 17 Javascript
详解Vue快速零配置的打包工具——parcel
Jan 16 Javascript
angularjs1.5 组件内用函数向外传值的实例
Sep 30 Javascript
Javascript删除数组里的某个元素
Feb 28 Javascript
vue中uni-app 实现小程序登录注册功能
Oct 12 Javascript
vue项目实现图片上传功能
Dec 23 Javascript
JavaScript array常用方法代码实例详解
Sep 02 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自定义函数返回多个值
2006/11/26 PHP
linux实现php定时执行cron任务详解
2013/12/24 PHP
全面了解PHP中的全局变量
2016/06/17 PHP
PHP ADODB实现事务处理功能示例
2018/05/25 PHP
JavaScript 字符串乘法
2009/08/20 Javascript
自定义ExtJS控件之下拉树和下拉表格附源码
2013/10/15 Javascript
JavaScript判断用户是否对表单进行了修改的方法
2015/03/18 Javascript
拥有一个属于自己的javascript表单验证插件
2016/03/24 Javascript
Javascript缓存API
2016/06/14 Javascript
D3.js封装文本实现自动换行和旋转平移等功能
2016/10/14 Javascript
Web前端框架Angular4.0.0 正式版发布
2017/03/28 Javascript
创建简单的node服务器实例(分享)
2017/06/23 Javascript
JavaScript阻止表单提交方法(附代码)
2017/08/15 Javascript
简单的Vue SSR的示例代码
2018/01/12 Javascript
JavaScript实现的DOM树遍历方法详解【二叉DOM树、多叉DOM树】
2018/05/07 Javascript
JS中call和apply函数用法实例分析
2018/06/20 Javascript
Element中的Cascader(级联列表)动态加载省\市\区数据的方法
2019/03/27 Javascript
Vue2.4+新增属性.sync、$attrs、$listeners的具体使用
2020/03/08 Javascript
小程序自动化测试的示例代码
2020/08/11 Javascript
[37:50]VP vs TNC Supermajor小组赛B组 BO3 第一场 6.2
2018/06/03 DOTA
python抓取百度首页的方法
2015/05/19 Python
python实现简单中文词频统计示例
2017/11/08 Python
Python 机器学习库 NumPy入门教程
2018/04/19 Python
python3利用tcp实现文件夹远程传输
2018/07/28 Python
浅谈Python traceback的优雅处理
2018/08/31 Python
pyqt弹出新对话框,以及关闭对话框获取数据的实例
2019/06/18 Python
Django 创建/删除用户的示例代码
2019/07/24 Python
python中bytes和str类型的区别
2019/10/21 Python
python实现图像全景拼接
2020/03/27 Python
Tensorflow--取tensorf指定列的操作方式
2020/06/30 Python
Monnier Freres中文官网:法国领先的奢侈品配饰在线零售商
2017/11/01 全球购物
维多利亚的秘密官方网站:Victoria’s Secret
2018/10/24 全球购物
《大作家的小老师》教学反思
2014/04/16 职场文书
生死牛玉儒观后感
2015/06/11 职场文书
Window server 2012 R2 AD域的组策略相关设置
2022/04/28 Servers
Java 数组的使用
2022/05/11 Java/Android