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 相关文章推荐
又一个小巧的图片预加载类
May 05 Javascript
javascript采用数组实现tab菜单切换效果
Dec 12 Javascript
javascript委托(Delegate)blur和focus用法实例分析
May 26 Javascript
js实现的奥运倒计时时钟效果代码
Dec 09 Javascript
javascript多物体运动实现方法分析
Jan 08 Javascript
js创建对象几种方式的优缺点对比
Sep 28 Javascript
jQuery实现对网页节点的增删改查功能示例
Sep 18 jQuery
Bootstrap标签页(Tab)插件切换echarts不显示问题的解决
Jul 13 Javascript
JS实现的input选择图片本地预览功能示例
Aug 29 Javascript
在NPM发布自己造的轮子的方法步骤
Mar 09 Javascript
解决layui-open关闭自身窗口的问题
Sep 10 Javascript
JavaScript设计模式之门面模式原理与实现方法分析
Mar 09 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实现指定字符串中查找子字符串的方法
2015/03/17 PHP
php快速查找数据库中恶意代码的方法
2015/04/01 PHP
php将字符串随机分割成不同长度数组的方法
2015/06/01 PHP
prototype 源码中文说明之 prototype.js
2006/09/22 Javascript
Javascript 日期处理之时区问题
2009/10/08 Javascript
获取div编辑框,textarea,input text的光标位置 兼容IE,FF和Chrome的方法介绍
2012/11/08 Javascript
JS防止用户多次提交的简单代码
2013/08/01 Javascript
js图片滚动效果时间可随意设定当鼠标移上去时停止
2014/06/26 Javascript
JavaScript 对象字面量讲解
2016/06/06 Javascript
vue双向数据绑定原理探究(附demo)
2017/01/17 Javascript
vue实现todolist单页面应用
2017/04/11 Javascript
自定义事件解决重复请求BUG的问题
2017/07/11 Javascript
Vue之Watcher源码解析(2)
2017/07/19 Javascript
Vue的百度地图插件尝试使用
2017/09/06 Javascript
js实现数字跳动到指定数字
2020/08/25 Javascript
python获取文件扩展名的方法
2015/07/06 Python
python入门基础之用户输入与模块初认识
2016/11/14 Python
python文件特定行插入和替换实例详解
2017/07/12 Python
Java与Python两大幸存者谁更胜一筹呢
2018/04/12 Python
python获取地震信息 微信实时推送
2019/06/18 Python
django框架面向对象ORM模型继承用法实例分析
2019/07/29 Python
python使用PIL和matplotlib获取图片像素点并合并解析
2019/09/10 Python
django模型动态修改参数,增加 filter 字段的方式
2020/03/16 Python
python topk()函数求最大和最小值实例
2020/04/02 Python
Django实现任意文件上传(最简单的方法)
2020/06/03 Python
matplotlib部件之套索Lasso的使用
2021/02/24 Python
JustFab加拿大:女鞋、靴子、手袋和服装在线
2018/05/18 全球购物
Reformation官网:美国女装品牌
2018/09/14 全球购物
日语专业毕业生自荐信
2013/11/11 职场文书
学校机关党总支领导班子整改工作方案
2014/10/26 职场文书
中班教师个人总结
2015/02/05 职场文书
2015年度残疾人工作总结
2015/05/14 职场文书
2019大学毕业晚会主持词
2019/06/21 职场文书
您对思维方式了解多少?
2019/12/09 职场文书
详解Python生成器和基于生成器的协程
2021/06/03 Python
常用的文件对应的MIME类型汇总
2022/04/26 HTML / CSS