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 相关文章推荐
Prototype使用指南之string.js
Jan 10 Javascript
jQuery中filter()方法用法实例
Jan 06 Javascript
使用jQuery实现更改默认alert框体
Apr 13 Javascript
Vue监听数组变化源码解析
Mar 09 Javascript
Node.js设置CORS跨域请求中多域名白名单的方法
Mar 28 Javascript
基于BootStrap实现简洁注册界面
Jul 20 Javascript
原生JS实现Ajax跨域请求flask响应内容
Oct 24 Javascript
详解Webpack+Babel+React开发环境的搭建的方法步骤
Jan 09 Javascript
vue-cli脚手架打包静态资源请求出错的原因与解决
Jun 06 Javascript
深入剖析JavaScript instanceof 运算符
Jun 14 Javascript
JS实现音乐导航特效
Jan 06 Javascript
用js编写留言板
Mar 17 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原理之错误抑制与内嵌HTML分析
2011/05/02 PHP
PHP中使用imagick生成PSD文件缩略图教程
2015/01/26 PHP
php ajax异步读取rss文档数据
2016/03/29 PHP
PDO::rollBack讲解
2019/01/29 PHP
js里的prototype使用示例
2010/11/19 Javascript
javascript中数组的多种定义方法和常用函数简介
2014/05/09 Javascript
jQuery 动态云标签插件
2014/11/11 Javascript
通过隐藏iframe实现无刷新上传文件操作
2016/03/16 Javascript
jQuery的promise与deferred对象在异步回调中的作用
2016/05/03 Javascript
angularjs中ng-bind-html的用法总结
2017/05/23 Javascript
Vue 2中ref属性的使用方法及注意事项
2017/06/12 Javascript
JavaScript中重名的函数与对象示例详析
2017/09/28 Javascript
nodejs实现爬取网站图片功能
2017/12/14 NodeJs
vue.js数据绑定操作详解
2018/04/23 Javascript
在SSM框架下用laypage和ajax实现分页和数据交互的方法
2019/09/27 Javascript
浅析vue-router中params和query的区别
2019/12/24 Javascript
[42:22]DOTA2上海特级锦标赛C组小组赛#1 OG VS Archon第一局
2016/02/27 DOTA
python条件和循环的使用方法
2013/11/01 Python
python操作ie登陆土豆网的方法
2015/05/09 Python
基于python的Tkinter实现一个简易计算器
2015/12/31 Python
python指定写入文件时的编码格式方法
2018/06/07 Python
pygame游戏之旅 添加碰撞效果的方法
2018/11/20 Python
Python中print函数简单使用总结
2019/08/05 Python
Django 简单实现分页与搜索功能的示例代码
2019/11/07 Python
Python求两个字符串最长公共子序列代码实例
2020/03/05 Python
Python基于gevent实现高并发代码实例
2020/05/15 Python
Python unittest单元测试openpyxl实现过程解析
2020/05/27 Python
解决pycharm导入本地py文件时,模块下方出现红色波浪线的问题
2020/06/01 Python
全球知名鞋履品牌授权零售商:Journeys
2016/09/17 全球购物
GafasWorld哥伦比亚:网上购买眼镜
2017/11/28 全球购物
老师自我鉴定范文
2013/12/25 职场文书
我们的节日中秋活动方案
2014/08/19 职场文书
法定代表人证明书
2014/11/28 职场文书
2015年国庆节广播稿
2015/08/19 职场文书
2016大学生优秀志愿者事迹材料
2016/02/25 职场文书
入党转正申请自我鉴定
2019/06/25 职场文书