关于使用json.lib处理私有对象属性的序列化问题

某一天,脑子抽风在封装订单记录OrderRecord的时候由于需要一些优惠券记录CouponRecord的属性,于是就在里边定义了一个CouponRecord的对象。

在最近查询订单记录,然后封装成json返回给前端时,踩了个大坑。

不论怎么请求,都无法获取到json返回的数据。找了很久,定位到是因为之前对象作为私有属性出的问题。json.lib识别基本数据类型,但是对于这种自定义数据类型它识别不了,所以也就没有办法返回。

OrderRecord:

public class OrderRecord {

	private String oid;
	private String title;
	private double price;
	private String type;
	private int num;
	private double privilege;
	private double aprice;
	private String otime;
	private int ostatus;
	private String uid;
	private String relevanceId;
	private String username;
	private String coupon;
	private CouponRecord couponRecord;
}

 解决方案:

由于涉及到的这个接口,并不需要优惠券信息,所以需要对json配置一些东西。

JsonConfig config = new JsonConfig();
config.setExcludes(new String[] {"couponRecord"});
List<OrderRecord> notClass_30 = orderRecordService.queryNotClass_30Stu(); object.put("notClass_30", JSONSerializer.toJSON(notClass_30, config));

 然后就可以看到我们要返回的数据了。

posted @ 2018-04-18 18:03  一介書生  阅读(305)  评论(0)    收藏  举报