JS中如何判断传过来的JSON数据中是否存在某字段

可以通过JS中Object的hasOwnProperty方法来判断一个传入的JSON数据中是否存在某个字段。hasOwnProperty方法可以检测一个Object对象自身是否包含指定的属性,如果包含,则返回true,否则返回false。

以下是示例代码:

const jsonObj = {"name": "Tom", "age": 20, "gender": "male"};

// 判断是否存在字段name
if (jsonObj.hasOwnProperty("name")) {
  console.log("存在字段name");
} else {
  console.log("不存在字段name");
}

// 判断是否存在字段address
if (jsonObj.hasOwnProperty("address")) {
  console.log("存在字段address");
} else {
  console.log("不存在字段address");
}

运行结果为:

存在字段name
不存在字段address

另外,如果想要深度判断一个JSON数据中是否存在某个嵌套字段,可以使用递归函数来实现。以下是示例代码:

const jsonObj = {"name": "Tom", "age": 20, "home": {"city": "Beijing", "address": {"street": "XXX Road"}}};

// 递归函数,用于检测某个嵌套字段是否存在
function checkNested(obj, key) {
  if (typeof obj !== "object") return false;
  if (obj.hasOwnProperty(key)) return true;
  for (let k in obj) {
    if (obj.hasOwnProperty(k) && checkNested(obj[k], key)) {
      return true;
    }
  }
  return false;
}

// 判断是否存在嵌套字段city
if (checkNested(jsonObj, "city")) {
  console.log("存在嵌套字段city");
} else {
  console.log("不存在嵌套字段city");
}

// 判断是否存在嵌套字段street
if (checkNested(jsonObj, "street")) {
  console.log("存在嵌套字段street");
} else {
  console.log("不存在嵌套字段street");
}

运行结果为:

存在嵌套字段city
存在嵌套字段street

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS中如何判断传过来的JSON数据中是否存在某字段 - Python技术站

(0)
上一篇 2023年6月25日
下一篇 2023年6月25日

相关文章

  • Win10系统64位可用内存突然少很多可用空间该怎么办?

    Win10系统64位可用内存突然减少的解决攻略 如果你的Win10系统64位可用内存突然减少了很多,可能会导致系统运行缓慢或出现其他问题。以下是一些解决此问题的步骤和示例说明。 步骤1:检查系统资源使用情况 首先,你需要检查系统资源使用情况,以确定哪些进程或应用程序占用了大量的内存。你可以按照以下步骤进行操作: 打开任务管理器:按下Ctrl + Shift …

    other 2023年7月31日
    00
  • thinkPHP5框架实现基于ajax的分页功能示例

    ThinkPHP5框架实现基于ajax的分页功能示例攻略 1. 示例概述 本示例旨在演示如何使用ThinkPHP5框架实现基于ajax的分页功能。通过ajax异步加载数据和更新页面,实现数据分页展示的效果。整个示例包含以下几个步骤: 创建数据库和表 创建控制器和模型 创建视图文件 编写ajax请求和数据处理逻辑 更新视图展示 接下来,我们将详细介绍每个步骤以…

    other 2023年6月28日
    00
  • Linux之进程间通信(共享内存【mmap实现+系统V】)

    Linux之进程间通信(共享内存[mmap实现+系统V])攻略 简介 进程间通信(IPC)是操作系统中重要的概念,它允许不同的进程之间进行数据交换和共享资源。共享内存是一种高效的进程间通信机制,它允许多个进程访问同一块内存区域,从而实现数据共享。 本攻略将详细介绍Linux中共享内存的实现方式,包括mmap和系统V共享内存。 mmap实现共享内存 mmap是…

    other 2023年8月1日
    00
  • 生化危机4重制版进入游戏无反应怎么办 进不去游戏解决方法

    生化危机4重制版进入游戏无反应怎么办?进不去游戏解决方法 问题描述 一些玩家在尝试启动生化危机4重制版时,可能会遇到进入游戏无反应的情况,无法成功进入游戏。 解决方法 方法一:管理员身份启动游戏 有时候,启动游戏需要管理员权限,如果你没有以管理员身份启动游戏,就会出现进入游戏无反应的情况。 右键点击游戏快捷方式或游戏程序本身。 选择“以管理员身份运行”选项。…

    other 2023年6月27日
    00
  • 解决C++全局变量只能初始化不能赋值的问题

    在C++中,全局变量具有特殊的初始化和赋值规则。全局变量只能在定义时进行初始化,而不能在其他位置和时刻进行赋值。这是因为全局变量处于全局范围内,具有全局生命周期,一旦被初始化就不能再次赋值。如果需要修改全局变量的值,则需要修改其所在的内存地址。 为了解决C++全局变量只能初始化不能赋值的问题,我们可以使用以下两种方法: 使用常量指针 我们可以将全局变量定义为…

    other 2023年6月20日
    00
  • Java Collections集合继承结构图_动力节点Java学院整理

    Java Collections(Java集合)是Java中比较重要的一个特性,它提供了一组实现常用数据结构的类和接口。Java中提供了很多的集合类,其中包括了List、Set、Map等集合类型。 这些集合类型在Java中的实现是基于不同的数据结构的,因此它们之间有着不同的特点和适用场景。我们可以通过Java Collections的继承结构图来更好的理解和…

    other 2023年6月26日
    00
  • CentOS下清理系统内存空间的方法

    CentOS下清理系统内存空间的方法攻略 在CentOS操作系统中,有几种方法可以清理系统内存空间,以提高系统性能和释放资源。以下是一些常用的方法和示例说明: 1. 使用sync命令 sync命令用于将内存中的数据同步到磁盘中,可以清理系统内存空间。执行sync命令后,系统会将缓存中的数据写入磁盘,从而释放内存。 示例: $ sync 2. 使用sysctl…

    other 2023年7月31日
    00
  • 使用jconsole监听远程Tomcat服务的方法

    使用jconsole监听远程Tomcat服务的方法可以通过以下步骤完成: 1. 开启JMX远程连接 在Tomcat的catalina.bat或catalina.sh中添加以下参数,开启JMX远程连接功能: -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=<port n…

    other 2023年6月27日
    00
合作推广
合作推广
分享本页
返回顶部