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组件焦点与页内锚点间传值的方法
Feb 02 Javascript
JavaScript控制浏览器全屏及各种浏览器全屏模式的方法、属性和事件
Dec 20 Javascript
JS中使用DOM来控制HTML元素
Jul 31 Javascript
JS控制静态页面之间传递参数获取参数并应用的简单实例
Aug 10 Javascript
基于Vue.js实现简单搜索框
Mar 26 Javascript
微信小程序 slider 详解及实例代码
Jan 10 Javascript
AngularJS $http模块POST请求实现
Apr 08 Javascript
js弹性势能动画之抛物线运动实例详解
Jul 27 Javascript
基于daterangepicker日历插件使用参数注意的问题
Aug 10 Javascript
微信小程序页面跳转功能之从列表的item项跳转到下一个页面的方法
Nov 27 Javascript
js断点调试经验分享
Dec 08 Javascript
关于TypeScript模块导入的那些事
Jun 12 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
星际流派综述
2020/03/04 星际争霸
php根据操作系统转换文件名大小写的方法
2014/02/24 PHP
优化WordPress的Google字体以加速国内服务器上的运行
2015/11/24 PHP
jQuery TextBox自动完成条
2009/07/22 Javascript
Jquery 1.42 checkbox 全选和反选代码
2010/03/27 Javascript
javascript一个无懈可击的实例化XMLHttpRequest的方法
2010/10/13 Javascript
改进版通过Json对象实现深复制的方法
2012/10/24 Javascript
JavaScript 上万关键字瞬间匹配实现代码
2013/07/07 Javascript
js替代copy(示例代码)
2013/11/27 Javascript
js+css 实现遮罩居中弹出层(随浏览器窗口滚动条滚动)
2013/12/11 Javascript
Node.js中的缓冲与流模块详细介绍
2015/02/11 Javascript
JS+DIV+CSS实现的经典标签切换效果代码
2015/09/14 Javascript
javascript实现文字无缝滚动
2016/12/27 Javascript
折叠菜单及选择器的运用
2017/02/03 Javascript
Vue 2.X的状态管理vuex记录详解
2017/03/23 Javascript
运用jQuery写的验证表单(实例讲解)
2017/07/06 jQuery
JS运动特效之任意值添加运动的方法分析
2018/01/24 Javascript
使用Vue实现图片上传的三种方式
2018/07/17 Javascript
vue+iview+less 实现换肤功能
2018/08/17 Javascript
详解Vue组件之作用域插槽
2018/11/22 Javascript
vue项目设置scrollTop不起作用(总结)
2018/12/21 Javascript
JavaScript数组特性与实践应用深入详解
2018/12/30 Javascript
JS实现点击li标签弹出对应的索引功能【案例】
2019/02/18 Javascript
vue远程加载sfc组件思路详解
2019/12/25 Javascript
vue同个按钮控制展开和折叠同个事件操作
2020/07/29 Javascript
[01:36:17]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第一场 1月31日
2021/03/11 DOTA
python统计文本字符串里单词出现频率的方法
2015/05/26 Python
python3 批量获取对应端口服务的实例
2019/07/25 Python
使用OpenCV-python3实现滑动条更新图像的Canny边缘检测功能
2019/12/12 Python
Python响应对象text属性乱码解决方案
2020/03/31 Python
校园十佳歌手策划书
2014/01/22 职场文书
房地产财务部员工岗位职责
2014/03/12 职场文书
党员对照检查材料整改措施思想汇报
2014/09/26 职场文书
2014向国旗敬礼网上签名活动总结
2014/09/27 职场文书
2016年安康杯竞赛活动总结
2016/04/05 职场文书
Linux中各个目录的作用与内容
2022/06/28 Servers