JS中判断JSON数据是否存在某字段的方法


Posted in Javascript onMarch 07, 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 相关文章推荐
用ASP将SQL搜索出来的内容导出为TXT的代码
Jul 27 Javascript
JS OOP包机制,类创建的方法定义
Nov 02 Javascript
JavaScript 数组循环引起的思考
Jan 01 Javascript
javascript 实现键盘上下左右功能的小例子
Sep 15 Javascript
jquery 中的each()跳出循环的语句
May 23 Javascript
js实现的简单radio背景颜色选择器代码
Aug 18 Javascript
JS在一定时间内跳转页面及各种刷新页面的实现方法
May 26 Javascript
JavaScript禁止用户多次提交的两种方法
Jul 24 Javascript
js鼠标按键事件和键盘按键事件用法实例汇总
Oct 03 Javascript
使用cookie绕过验证码登录的实现代码
Oct 12 Javascript
微信小程序仿RadioGroup改变样式的处理方案
Jul 13 Javascript
Bootstrap Table中的多选框删除功能
Jul 15 Javascript
js类型转换与引用类型详解(Boolean_Number_String)
Mar 07 #Javascript
JS调试必备的5个debug技巧
Mar 07 #Javascript
javascript中style.left和offsetLeft的用法说明
Mar 07 #Javascript
js读取被点击次数的简单实例(从数据库中读取)
Mar 07 #Javascript
js函数名与form表单元素同名冲突的问题
Mar 07 #Javascript
javascript(js)的小数点乘法除法问题详解
Mar 07 #Javascript
jquery中常用的函数和属性详细解析
Mar 07 #Javascript
You might like
php用户注册页面利用js进行表单验证具体实例
2013/10/17 PHP
PHP生成短网址的思路以及实现方法的详解
2019/03/25 PHP
javascript 定义初始化数组函数
2009/09/07 Javascript
获取下拉列表框的值是数组,split,$.inArray示例
2013/11/13 Javascript
js 判断浏览器使用的语言示例代码
2014/03/22 Javascript
javascript 模拟坦克大战游戏(html5版)附源码下载
2014/04/08 Javascript
JS右下角广告窗口代码(可收缩、展开及关闭)
2015/09/04 Javascript
基于jquery实现图片上传本地预览功能
2016/01/08 Javascript
原生JS实现平滑回到顶部组件
2016/03/16 Javascript
Javascript设计模式之观察者模式(推荐)
2016/03/29 Javascript
js遍历json对象所有key及根据动态key获取值的方法(必看)
2017/03/09 Javascript
JS组件系列之MVVM组件 vue 30分钟搞定前端增删改查
2017/04/28 Javascript
Vue.js手风琴菜单组件开发实例
2017/05/16 Javascript
vue 如何添加全局函数或全局变量以及单页面的title设置总结
2017/06/01 Javascript
浅谈vue-router2路由参数注意的问题
2017/11/08 Javascript
快速搭建vue2.0+boostrap项目的方法
2018/04/09 Javascript
vue配置请求本地json数据的方法
2018/04/11 Javascript
微信小程序中使用ECharts 异步加载数据的方法
2018/06/27 Javascript
详解如何构建Promise队列实现异步函数顺序执行
2018/10/23 Javascript
JavaScript动态检测密码强度原理及实现方法详解
2019/06/11 Javascript
JS实现移动端在线签协议功能
2019/08/22 Javascript
JS+html5实现异步上传图片显示上传文件进度条功能示例
2019/11/09 Javascript
python代码检查工具pylint 让你的python更规范
2012/09/05 Python
在Python中使用defaultdict初始化字典以及应用方法
2018/10/31 Python
使用Python实现毫秒级抢单功能
2019/06/06 Python
django做form表单的数据验证过程详解
2019/07/26 Python
关于Python 中的时间处理包datetime和arrow的方法详解
2020/03/19 Python
美国性感内衣店:Yandy
2018/06/12 全球购物
科颜氏印度官网:Kiehl’s印度
2021/02/20 全球购物
医学专业本科毕业生自我鉴定
2013/12/28 职场文书
毕业生班级鉴定评语
2015/01/04 职场文书
高一作文之暖冬
2019/11/09 职场文书
golang gopm get -g -v 无法获取第三方库的解决方案
2021/05/05 Golang
pytorch 中autograd.grad()函数的用法说明
2021/05/12 Python
GO语言异常处理分析 err接口及defer延迟
2022/04/14 Golang