雁过留声 发表于 2024-8-16 18:09:43

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);
} https://img-blog.csdnimg.cn/direct/b8975b91fa784d7582f9b67aa2a8b090.png
二、方式二,使用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 + '\'' +
                  '}';
      }
    } https://img-blog.csdnimg.cn/direct/cba11ab82c0f4512b200e8ac387ba819.png
 注意!!!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);
    } https://img-blog.csdnimg.cn/direct/67caafda7f5b4386b1efbc9e4c6d631e.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: JSON字符串中获取一个指定字段的值