JSON字符串中获取一个指定字段的值四种方式

 更新时间:2024年09月04日 09:14:41   作者:闫小生  
在Java开发中,我们经常会遇到需要从JSON数据中提取特定字段值的情况,这篇文章主要给大家介绍了关于JSON字符串中获取一个指定字段的值四种方式,文中通过代码介绍的非常详细,需要的朋友可以参考下

一、方式一,引用gson工具

测试报文:

{
	"account":"yanxiaosheng",
	"password":"123456"
}

引入pom

<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
<dependency>
	<groupId>com.google.code.gson</groupId>
	<artifactId>gson</artifactId>
	<version>2.6.2</version>
</dependency>

测试类:

import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

@Test
public void test() throws Exception {
        String json = "{\n" +
                "\t\"account\":\"yanxiaosheng\",\n" +
                "\t\"password\":\"123456\"\n" +
                "}";
        JsonParser jsonParser = new JsonParser();
        JsonElement jsonElement = jsonParser.parse(json);
        JsonObject jsonObject = jsonElement.getAsJsonObject();
        String fieldValue = jsonObject.get("account").getAsString();
        System.out.println(fieldValue);
}

二、方式二,使用jackson 

{
	"account":"yanxiaosheng",
	"password":"123456",
	"flag":"true"
}

测试类:

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;

@Test
    public void test() throws Exception {
        String json = "{\n" +
                "\t\"account\":\"yanxiaosheng\",\n" +
                "\t\"password\":\"123456\",\n" +
                "\t\"flag\":\"true\"\n" +
                "}";
        ObjectMapper objectMapper = new ObjectMapper();
        JsonNode jsonNode = objectMapper.readTree(json);
        String account = jsonNode.get("account").asText();
        int password = jsonNode.get("password").asInt();
        boolean flag = jsonNode.get("flag").asBoolean();
        System.out.println(account);
        System.out.println(password);
        System.out.println(flag);
    }

三、方式三,使用jackson转换Object

测试报文:

{
	"account":"yanxiaosheng",
	"password":"123456"
}

测试类:

@Test
    public void test() throws Exception {
        String json = "{\n" +
                "\t\"account\":\"yanxiaosheng\",\n" +
                "\t\"password\":\"123456\"\n" +
                "}";
        ObjectMapper objectMapper = new ObjectMapper();
        Login login = objectMapper.readValue(json, DepositTest.Login.class);
        System.out.println(login.toString());
    }

    public static class Login{
        private String account;
        private String password;
        public String getAccount() {
            return account;
        }
        public void setAccount(String account) {
            this.account = account;
        }
        public String getPassword() {
            return password;
        }
        public void setPassword(String password) {
            this.password = password;
        }
        @Override
        public String toString() {
            return "Login{" +
                    "account='" + account + '\'' +
                    ", password='" + password + '\'' +
                    '}';
        }
    }

 注意!!!DepositTest.Login.class   DepositTest  需使用自己写的测试类名

四、方式四,使用hutool,获取报文数组数据 

测试报文: 

{
	"code":"0",
	"message":"",
	"data":[{
		"account":"yanxiaosheng",
		"password":"123456"
	}]
}

引入pom

<dependency>
	<groupId>cn.hutool</groupId>
	<artifactId>hutool-all</artifactId>
	<version>4.1.19</version>
</dependency>

测试类:

  @Test
    public void test() throws Exception {
        String json = "{\n" +
                "\t\"code\":\"0\",\n" +
                "\t\"message\":\"\",\n" +
                "\t\"data\":[{\n" +
                "\t\t\"account\":\"yanxiaosheng\",\n" +
                "\t\t\"password\":\"123456\"\n" +
                "\t}]\n" +
                "}";
        JSONObject jsonObject = new JSONObject(json);
        JSONArray jsonArray = jsonObject.getJSONArray("data");
        JSONObject resultObject = jsonArray.getJSONObject(0);
        String account = resultObject.getStr("account");
        System.out.println(account);
    }

总结

到此这篇关于JSON字符串中获取一个指定字段的值四种方式的文章就介绍到这了,更多相关JSON字符串获取指定字段值内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringBoot+SpringCloud用户信息微服务传递实现解析

    SpringBoot+SpringCloud用户信息微服务传递实现解析

    这篇文章主要介绍了SpringBoot+SpringCloud实现登录用户信息在微服务之间的传递,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • java联调生成测试数据工具类方式

    java联调生成测试数据工具类方式

    这篇文章主要介绍了java联调生成测试数据工具类方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • java数据类型转换陷阱包括列表陷阱

    java数据类型转换陷阱包括列表陷阱

    这篇文章主要介绍了java数据类型转换的一些陷阱,包括基本数据类型转换列表陷阱,基本上这一篇就把常见的问题就给大家分享一下
    2020-10-10
  • HashMap线程不安全问题解析

    HashMap线程不安全问题解析

    这篇文章主要介绍了HashMap线程不安全问题解析,HashMap的线程不安全体现在会造成死循环、数据丢失、数据覆盖等问题,其中死循环和数据丢失是在JDK1.7中出现的问题,在JDK1.8中已经得到解决,但是1.8中仍会有数据覆盖这样的问题,需要的朋友可以参考下
    2023-11-11
  • Java获取控制台输入的两种方法小结

    Java获取控制台输入的两种方法小结

    这篇文章主要介绍了Java获取控制台输入的两种方法小结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • Android Home键监听的实现代码

    Android Home键监听的实现代码

    这篇文章主要介绍了Android Home 键监听的实现代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • Java连接sftp服务器实现上传下载功能

    Java连接sftp服务器实现上传下载功能

    这篇文章主要介绍了java连接sftp服务器实现上传下载,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-08-08
  • Java基础之查找文本特定内容后进行修改

    Java基础之查找文本特定内容后进行修改

    这篇文章主要介绍了Java基础之查找文本特定内容后进行修改,文中有非常详细的代码示例,对正在学习java基础的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-04-04
  • 基于mybatis高级映射多对多查询的实现

    基于mybatis高级映射多对多查询的实现

    下面小编就为大家带来一篇基于mybatis高级映射多对多查询的实现。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • Spring IOC容器Bean管理的完全注解开发放弃配置文件

    Spring IOC容器Bean管理的完全注解开发放弃配置文件

    这篇文章主要为大家介绍了Spring IOC容器的Bean管理完全注解开发放弃配置文件,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05

最新评论