编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

Gson反序列化复杂的泛型对象

wxchong 2024-06-13 03:23:32 开源技术 11 ℃ 0 评论

很多项目使用google的gson工具来进行java对象的序列化和反序列化,有时我们需要反序列化复杂的嵌套对象出来。

简单封装一个JsonUtil工具类,内部依赖Gson对象实现,注意fromJson(String json, Type type)方法,下面就是利用该方式实现复杂的对象反序列化的。

public class JsonUtil {
    private static Gson gson = new Gson();
    public static <T> T fromJson(String json, Type type) {
        if (StringUtils.isEmpty(json)) {
            return null;
        }
        return gson.fromJson(json, type);
    }
    public static <T> T fromJson(String json, Class<T> clazz) {
        if (StringUtils.isEmpty(json)) {
            return null;
        }
        return gson.fromJson(json, clazz);
    }
    public static String toJson(Object object) {
        if (object == null) {
            return "";
        }
        return gson.toJson(object);
    }
}

如何使用?

Response<Order> rp = 
  JsonUtil.fromJson(text,  new TypeToken<Response<Order>>(){}.getType());

其中Response类和Order类都是pojo类型,如下:

@Getter
@Setter
@Builder
@ToString
public class Response<T> {
    /**
     * 返回码
     **/
    private String code;
    /**
     * 返回描述
     **/
    private String message;
    /**
     * 返回码
     **/
    private String request_id;
    /**
     * 返回交易数据
     **/
    private T data;
}
@Setter
@Getter
@NoArgsConstructor
public class Order {
    private String amount;  
    private String order_id;  
    private String status;
}

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表