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

闫小生 2024-09-03 08:33:10 阅读 66

一、方式一,引用gson工具

测试报文:

<code>{

"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 

<code>{

"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 + '\'' +code>

", password='" + password + '\'' +code>

'}';

}

}

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

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

测试报文: 

<code>{

"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);

}



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。