前言:
目前网络上有很多接口是Json形式的,Gson是谷歌开源的Json解析库,可以方便的将Java对象转换成Json字符串,也可以方便的将Json字符串转换成Java对象。
OrderDTO.java
@Data
public class OrderDTO {
/** 订单id. */
private String orderId;
/** 买家名字. */
private String buyerName;
/** 买家手机号. */
private String buyerPhone;
/** 买家地址. */
private String buyerAddress;
/** 买家微信Openid. */
private String buyerOpenid;
/** 订单总金额. */
private BigDecimal orderAmount;
/** 订单状态, 默认为0新下单. */
private Integer orderStatus;
/** 支付状态, 默认为0未支付. */
private Integer payStatus;
private List<OrderDetail> orderDetailList;
}
OrderDetail.java
@Data
@Entity
public class OrderDetail {
@Id
private String detailId;
/** 订单id. */
private String orderId;
/** 商品id. */
private String productId;
/** 商品名称. */
private String productName;
/** 商品单价. */
private BigDecimal productPrice;
/** 商品数量. */
private Integer productQuantity;
/** 商品小图. */
private String productIcon;
}
开始我们的主角:
public static void main(String[] args) {
List<OrderDetail> orderDetailList = new ArrayList<OrderDetail>();
OrderDetail orderDetail = new OrderDetail();
orderDetail.setDetailId("11111");
orderDetail.setProductName("商品1");
OrderDetail orderDetail2 = new OrderDetail();
orderDetail2.setDetailId("22222");
orderDetail2.setProductName("商品2");
orderDetailList.add(orderDetail);
orderDetailList.add(orderDetail2);
OrderDTO orderDTO = new OrderDTO();
orderDTO.setBuyerOpenid("123456");
orderDTO.setBuyerName("GX");
orderDTO.setOrderDetailList(orderDetailList);
// 对象转json
Gson gson = new Gson();
String objectToJson = gson.toJson(orderDTO);
System.out.println(objectToJson);
// json转对象
OrderDTO stringToObject = new Gson().fromJson(objectToJson, OrderDTO.class);
List<OrderDetail> orderDetails = stringToObject.getOrderDetailList();
System.out.println(stringToObject);
System.out.println(orderDetails);
// json转list
String listString = gson.toJson(orderDetails);
List<OrderDetail> result = gson.fromJson(listString,new TypeToken<List<OrderDetail>>() {}.getType());
System.out.println(result);
}
好了,大家如果又看不懂的地方,直接自己运行下看看结果即可,如果对你有帮助的话请点个赞哦!!!