JSON字符串中获取一个特定字段的值

JSON字符串中获取一个特定字段的值

一、方式一,引用gson工具

测试报文:

java 复制代码
{
	"account":"zhangsan",
	"password":"123456"
}

引入pom

java 复制代码
<!-- 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>

代码

java 复制代码
package com;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

public class Test {
    public static void main(String[] args) {
        String json = "{\n" +
                "\t\"account\":\"zhangsan\",\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

测试报文:

java 复制代码
{
	"account":"zhangsan",
	"password":"123456",
	"flag":"true"
}

代码

java 复制代码
package com;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;

public class Test {
    public static void main(String[] args) throws JsonProcessingException {
        String json = "{\n" +
                "\t\"account\":\"zhangsan\",\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

测试报文:

java 复制代码
{
	"account":"zhangsan",
	"password":"123456"
}

代码

java 复制代码
package com;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;

public class Test {
    public static void main(String[] args) throws JsonProcessingException {
        String json = "{\n" +
                "\t\"account\":\"zhangsan\",\n" +
                "\t\"password\":\"123456\"\n" +
                "}";
        ObjectMapper objectMapper = new ObjectMapper();
        Login login = objectMapper.readValue(json, Test.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 + '\'' +
                    '}';
        }
    }
}

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

测试报文:

java 复制代码
{
	"code":"0",
	"message":"",
	"data":[{
		"account":"zhangsan",
		"password":"123456"
	}]
}

引入pom

java 复制代码
<dependency>
	<groupId>cn.hutool</groupId>
	<artifactId>hutool-all</artifactId>
	<version>4.1.19</version>
</dependency>

代码

java 复制代码
package com;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import com.fasterxml.jackson.core.JsonProcessingException;

public class Test {
    public static void main(String[] args) throws JsonProcessingException {
        String json = "{\n" +
                "\t\"code\":\"0\",\n" +
                "\t\"message\":\"\",\n" +
                "\t\"data\":[{\n" +
                "\t\t\"account\":\"zhangsan\",\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);
    }
}

OK,就这些吧。

有什么不对的还望指正,书写不易,觉得有帮助就点个赞吧!☺☺☺

参考链接:https://www.cnblogs.com/xbinbin/p/17647956.html

相关推荐
计算机学长felix8 分钟前
基于SpringBoot的“校园交友网站”的设计与实现(源码+数据库+文档+PPT)
数据库·spring boot·毕业设计·交友
Re.不晚11 分钟前
Java入门15——抽象类
java·开发语言·学习·算法·intellij-idea
雷神乐乐17 分钟前
Maven学习——创建Maven的Java和Web工程,并运行在Tomcat上
java·maven
码农派大星。20 分钟前
Spring Boot 配置文件
java·spring boot·后端
顾北川_野27 分钟前
Android 手机设备的OEM-unlock解锁 和 adb push文件
android·java
江深竹静,一苇以航30 分钟前
springboot3项目整合Mybatis-plus启动项目报错:Invalid bean definition with name ‘xxxMapper‘
java·spring boot
confiself1 小时前
大模型系列——LLAMA-O1 复刻代码解读
java·开发语言
Wlq04151 小时前
J2EE平台
java·java-ee
XiaoLeisj1 小时前
【JavaEE初阶 — 多线程】Thread类的方法&线程生命周期
java·开发语言·java-ee
杜杜的man1 小时前
【go从零单排】go中的结构体struct和method
开发语言·后端·golang