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 相关文章推荐
jquery中eq和get的区别与使用方法
Apr 14 Javascript
如何在JavaScript中实现私有属性的写类方式(二)
Dec 04 Javascript
DeviceOne 让你一见钟情的App快速开发平台
Feb 17 Javascript
jQuery图片前后对比插件beforeAfter用法示例【附demo源码下载】
Sep 20 Javascript
jquery在vue脚手架中的使用方式示例
Aug 29 jQuery
vue resource post请求时遇到的坑
Oct 19 Javascript
iview table高度动态设置方法
Mar 14 Javascript
axios全局注册,设置token,以及全局设置url请求网段的方法
Sep 25 Javascript
Makefile/cmake/node-gyp中区分判断不同平台的方法
Dec 18 Javascript
JavaScript设计模式--桥梁模式引入操作实例分析
May 23 Javascript
vue如何搭建多页面多系统应用
Jun 17 Javascript
vue中使用mockjs配置和使用方式
Apr 06 Vue.js
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/06/03 PHP
php 与 nginx 的处理方式及nginx与php-fpm通信的两种方式
2018/09/28 PHP
asp批量修改记录的代码
2008/06/25 Javascript
Javascript打印网页部分内容的脚本
2008/11/17 Javascript
js正则表达式匹配数字字母下划线等
2015/04/14 Javascript
jQuery实现仿QQ头像闪烁效果的文字闪动提示代码
2015/11/03 Javascript
js密码强度实时检测代码
2016/03/02 Javascript
jQuery获取attr()与prop()属性值的方法及区别介绍
2016/07/06 Javascript
express文件上传中间件Multer详解
2016/10/24 Javascript
JavaScript面试题(指针、帽子和女朋友)
2016/11/23 Javascript
JS比较两个数值的大小实例
2016/11/25 Javascript
JS实现图片居中悬浮效果
2017/12/25 Javascript
实例学习JavaScript读取和写入cookie
2018/01/29 Javascript
React+Antd+Redux实现待办事件的方法
2019/03/14 Javascript
微信小程序如何调用json数据接口并解析
2019/06/29 Javascript
layui 富文本编辑器和textarea值的相互传递方法
2019/09/18 Javascript
Vue使用轮询定时发送请求代码
2020/08/10 Javascript
python实现可将字符转换成大写的tcp服务器实例
2015/04/29 Python
python实现根据ip地址反向查找主机名称的方法
2015/04/29 Python
Python编程中字符串和列表的基本知识讲解
2015/10/14 Python
Python中的 enum 模块源码详析
2019/01/09 Python
使用Python制作简单的小程序IP查看器功能
2019/04/16 Python
解决Django一个表单对应多个按钮的问题
2019/07/18 Python
python 两个数据库postgresql对比
2019/10/21 Python
python用WxPython库实现无边框窗体和透明窗体实现方法详解
2020/02/21 Python
基于Python fminunc 的替代方法
2020/02/29 Python
Python如何实现在字符串里嵌入双引号或者单引号
2020/03/02 Python
THE OUTNET美国官网:国际设计师品牌折扣网站
2017/03/07 全球购物
玉兰油美国官网:OLAY美国
2018/10/25 全球购物
旅游专业职业生涯规划范文
2014/01/13 职场文书
期终自我鉴定
2014/02/17 职场文书
个人工作作风整改措施思想汇报
2014/10/13 职场文书
2014年药剂科工作总结
2014/11/26 职场文书
2016年教师节感言
2015/12/09 职场文书
八年级英语教学反思
2016/02/15 职场文书
Java虚拟机内存结构及编码实战分享
2022/04/07 Java/Android