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 相关文章推荐
脚本之家贴图转换+转贴工具用到的js代码超级推荐
Apr 05 Javascript
基于jquery的滑动样例代码
Nov 20 Javascript
jquery easyui combobox模糊过滤(示例代码)
Nov 30 Javascript
jquery库文件略庞大用纯js替换jquery的方法
Aug 12 Javascript
深入解析桶排序算法及Node.js上JavaScript的代码实现
Jul 06 Javascript
jQuery Ajax使用FormData对象上传文件的方法
Sep 07 Javascript
React组件的三种写法总结
Jan 12 Javascript
微信小程序  TLS 版本必须大于等于1.2问题解决
Feb 22 Javascript
基于vue2.0实现仿百度前端分页效果附实现代码
Oct 30 Javascript
vuex vue简单使用知识点总结
Aug 29 Javascript
layui固定下拉框的显示条数(有滚动条)的方法
Sep 10 Javascript
解决vue项目,npm run build后,报路径错的问题
Aug 13 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 include_path设置技巧分享
2011/07/03 PHP
php动态生成函数示例
2014/03/21 PHP
CI框架入门示例之数据库取数据完整实现方法
2014/11/05 PHP
php中 ob_start等函数截取标准输出的方法
2015/06/22 PHP
PHP文件管理之实现网盘及压缩包的功能操作
2017/09/20 PHP
PHP ADODB生成HTML表格函数rs2html功能【附错误处理函数用法】
2018/05/29 PHP
javascript 获取页面的高度及滚动条的位置的代码
2010/05/06 Javascript
javascript 实现 秒杀,团购 倒计时展示的记录 分享
2013/07/12 Javascript
Sort()函数的多种用法
2016/03/20 Javascript
canvas的神奇用法
2017/02/03 Javascript
Vue2学习笔记之请求数据交互vue-resource
2017/02/23 Javascript
微信小程序中用WebStorm使用LESS
2017/03/08 Javascript
基于vuejs实现一个todolist项目
2017/04/11 Javascript
vue-router相关基础知识及工作原理
2018/03/16 Javascript
JavaScript类的继承操作实例总结
2018/12/20 Javascript
JS数组reduce()方法原理及使用技巧解析
2020/07/14 Javascript
[34:41]夜魇凡尔赛茶话会 第二期02:你画我猜
2021/03/11 DOTA
关于你不想知道的所有Python3 unicode特性
2014/11/28 Python
一步步教你用Python实现2048小游戏
2017/01/19 Python
浅谈python内置变量-reversed(seq)
2017/06/21 Python
在java中如何定义一个抽象属性示例详解
2017/08/18 Python
python实现判断一个字符串是否是合法IP地址的示例
2018/06/04 Python
tensorflow实现逻辑回归模型
2018/09/08 Python
PyCharm+PySpark远程调试的环境配置的方法
2018/11/29 Python
python config文件的读写操作示例
2019/09/27 Python
python对验证码降噪的实现示例代码
2019/11/12 Python
Pytorch在dataloader类中设置shuffle的随机数种子方式
2020/01/14 Python
UI自动化定位常用实现方法代码示例
2020/10/27 Python
Python Unittest原理及基本使用方法
2020/11/06 Python
加拿大时尚床上用品零售商:QE Home | Quilts Etc
2018/01/22 全球购物
升旗仪式演讲稿
2014/05/08 职场文书
护校行动方案
2014/05/31 职场文书
公司领导班子四风对照检查材料
2014/09/27 职场文书
市委常委会班子党的群众路线教育实践活动整改方案
2014/10/25 职场文书
django上传文件的三种方式
2021/04/29 Python
一小时迅速入门Mybatis之bind与多数据源支持 Java API
2021/09/15 Javascript