很多项目使用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;
}
本文暂时没有评论,来添加一个吧(●'◡'●)