Gson的用法实例

川长思鸟来 2022-05-19 04:50 301阅读 0赞

JSON字符串解析成对象

  • JSON字符串

    {
    “mailNo”: “12345678”,
    “orgCode”: “315005”
    }

  • NameReq 代码

    public class NameReq {

    1. private String mailNo; //运单号
    2. private String orgCode; //机构代码
    3. public String getMailNo() {
    4. return mailNo;
    5. }
    6. public void setMailNo(String mailNo) {
    7. this.mailNo = mailNo;
    8. }
    9. public String getOrgCode() {
    10. return orgCode;
    11. }
    12. public void setOrgCode(String orgCode) {
    13. this.orgCode = orgCode;
    14. }

    }

  • 解析代码

    NameReq nameReq = gson.fromJson(body, NameReq.class);

JSON字符串解析成集合

  • JSON字符串

    [{

    1. "monthStartDay": "2018-04-01 00:00:00",
    2. "monthEndDay": "2018-04-30 23:23:00"

    }, {

    1. "monthStartDay": "2018-05-01 00:00:00",
    2. "monthEndDay": "2018-05-31 23:23:00"

    }]

  • DispatchParameter代码

    public class DispatchParameter implements Serializable {

    1. private String sitename;// 网点名称
    2. private String username;// 业务员名称
    3. private String monthStartDay;// 每月的开始日期
    4. private String monthEndDay;// 每月的结束日期
    5. public String getSitename() {
    6. return sitename;
    7. }
    8. public void setSitename(String sitename) {
    9. this.sitename = sitename;
    10. }
    11. public String getUsername() {
    12. return username;
    13. }
    14. public void setUsername(String username) {
    15. this.username = username;
    16. }
    17. public String getMonthStartDay() {
    18. return monthStartDay;
    19. }
    20. public void setMonthStartDay(String monthStartDay) {
    21. this.monthStartDay = monthStartDay;
    22. }
    23. public String getMonthEndDay() {
    24. return monthEndDay;
    25. }
    26. public void setMonthEndDay(String monthEndDay) {
    27. this.monthEndDay = monthEndDay;
    28. }
    29. public DispatchParameter(String sitename, String username, String monthStartDay, String monthEndDay) {
    30. super();
    31. this.sitename = sitename;
    32. this.username = username;
    33. this.monthStartDay = monthStartDay;
    34. this.monthEndDay = monthEndDay;
    35. }

    }

  • 解析代码

    Gson gson = new Gson();

    List reList = gson.fromJson(monthArray,

    1. new TypeToken<List<DispatchParameter> >(){ }.getType());

匿名内部类

  1. 概念:即内部类的简化写法
  2. 前提:存在一个类(可以是具体类也可以是抽象类)或接口
  3. 格式:new 父类名或父接口名{可重写的方法}
  4. 本质:创建的是继承了类或实现了接口的子类匿名对象
  5. /** * 定义了一个继承TypeToken的匿名内部类 */
  6. Type type=new TypeToken<List<Integer>>() { }.getType();

Maven坐标

  1. <dependency>
  2. <groupId>com.google.code.gson</groupId>
  3. <artifactId>gson</artifactId>
  4. <version>2.8.2</version>
  5. </dependency>

发表评论

表情:
评论列表 (有 0 条评论,301人围观)

还没有评论,来说两句吧...

相关阅读