当前位置:首页 » 《我的小黑屋》 » 正文

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

11 人参与  2024年10月03日 13:20  分类 : 《我的小黑屋》  评论

点击全文阅读


一、方式一,引用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;@Testpublic 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);    }


点击全文阅读


本文链接:http://zhangshiyu.com/post/167373.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1