java中判断json key是否存在的几种方法

 更新时间:2025年09月28日 11:26:19   作者:forever銳  
在使用Java处理JSON数据时,如何判断某一个key是否存在?本文就来介绍三种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

在使用Java处理JSON数据时,如何判断某一个key是否存在?

第一种方法是使用 JSONObject 的 has 方法

该方法会返回一个布尔值,表示JSON对象中是否包含指定的key。具体代码如下:

JSONObject obj = new JSONObject("{"name":"Jack", "age":18}");
boolean hasKey = obj.has("name");
System.out.println("是否包含name属性:" + hasKey);   // 输出 true

第二种方法是使用 JSONObject 的 opt 方法

该方法会根据key获取对应的value,如果key不存在则返回null。可以通过判断返回值是否为null来判断key是否存在。具体代码如下:

JSONObject obj = new JSONObject("{"name":"Jack", "age":18}");
String name = obj.optString("name");
if(name == null) {
System.out.println("不存在name属性");
} else {
System.out.println("存在name属性,值为:" + name);
}

第三种方法是将JSON字符串转换为Map对象

然后判断Map中是否包含指定的key。具体代码如下:

String jsonStr = "{"name":"Jack", "age":18}";
Mapmap = JSON.parseObject(jsonStr, new TypeReference>(){});
if(map.containsKey("name")) {
System.out.println("存在name属性");
} else {
System.out.println("不存在name属性");
}

到此这篇关于java中判断json key是否存在的几种方法的文章就介绍到这了,更多相关java 判断json key是否存在内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 快速掌握Java8中的Optional

    快速掌握Java8中的Optional

    Optional 是一个容器类,代表一个值存在或不存在,Optional并不是用来替换所有的null,而是为了在设计良好的API中更明确地表达可能缺失的值,这篇文章主要介绍了Java8的Optional及使用,需要的朋友可以参考下
    2023-07-07
  • SpringCloud安装Nacos完成配置中心

    SpringCloud安装Nacos完成配置中心

    如果不满足上篇文章的eureka注册中心,那么本文记录的Nacos是不二之选。本文主要记录Springboot基于Nacos实现配置中心
    2022-07-07
  • 使用Spring Initializr创建Spring Boot项目没有JDK1.8的解决办法

    使用Spring Initializr创建Spring Boot项目没有JDK1.8的解决办法

    很久没创建springboot项目,今天使用idea的Spring Initializr 创建 Spring Boot项目时,发现java版本里,无法选择jdk1.8,只有17、21、22,所以本文介绍了使用Spring Initializr创建Spring Boot项目没有JDK1.8的解决办法,需要的朋友可以参考下
    2024-06-06
  • OpenFeign指定url方式调用的方式详解

    OpenFeign指定url方式调用的方式详解

    OpenFeign一般是结合注册中心一起使用的,也就是可以通过提供服务的名称而不是url来完成对目标服务的访问,本篇我们就讲解一下OpenFeign直接通过目标服务的url进行调用的方式,需要的朋友可以参考下
    2024-11-11
  • springboot的http.server.requests服务请求流程源码

    springboot的http.server.requests服务请求流程源码

    这篇文章主要为大家介绍了springboot的http.server.requests服务请求流程源码,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • SpringBoot整合EasyExcel 3.x的完整示例

    SpringBoot整合EasyExcel 3.x的完整示例

    EasyExcel 是一个基于 Java 的、快速、简洁、解决大文件内存溢出的 Excel 处理工具,它能让你在不用考虑性能、内存的等因素的情况下,快速完成 Excel 的读、写等功能,这篇文章主要介绍了SpringBoot整合EasyExcel3.x的过程,需要的朋友可以参考下
    2023-07-07
  • 解决在SpringBoot中使用@Value取不到值的问题

    解决在SpringBoot中使用@Value取不到值的问题

    这篇文章主要给大家分享解决在SpringBoot中使用@Value取不到值的问题,文中有详细的解决代码供大家参考,具有一定的参考价值,需要的朋友可以参考下
    2023-09-09
  • MyBatis Plus实现一对多的查询场景的三种方法

    MyBatis Plus实现一对多的查询场景的三种方法

    MyBatis Plus提供了多种简便的方式来进行一对多子查询,本文主要介绍了MyBatis Plus实现一对多的查询场景的三种方法,具有一定的参考价值,感兴趣的可以了解一下
    2024-07-07
  • Java中定时器Timer和TimerTask使用方法全解析

    Java中定时器Timer和TimerTask使用方法全解析

    这篇文章主要介绍了Java中定时器Timer和TimerTask使用方法的相关资料,如何创建定时任务、安排任务执行、取消任务以及实现任务的暂停和恢复功能,通过这些功能,可以灵活地控制任务的执行,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-04-04
  • 聊聊RabbitMQ发布确认高级问题

    聊聊RabbitMQ发布确认高级问题

    这篇文章主要介绍了RabbitMQ发布确认高级问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-01-01

最新评论