ToB企服应用市场:ToB评测及商务社交产业平台
标题:
JSON字符串中获取一个指定字段的值
[打印本页]
作者:
雁过留声
时间:
2024-8-16 18:09
标题:
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);
}
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4