【Gson用法】Gson和String,List的相互转换(序列化反序列化)

前言:

目前网络上有很多接口是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);

	}

好了,大家如果又看不懂的地方,直接自己运行下看看结果即可,如果对你有帮助的话请点个赞哦!!!

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值