关于使用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));
然后就可以看到我们要返回的数据了。

浙公网安备 33010602011771号