public static void main(String[] args) {
ObjectMapper mapper = new ObjectMapper();
mapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
mapper.enableDefaultTyping(NON_FINAL);
Meta meta = new Meta();
meta.setFilters(new Meta.FilterGroups());
meta.setPagination(new PageInfo());
meta.setPrecisions(Lists.newArrayList(new ReportPrecision()));
byte[] bytes = mapper.writeValueAsBytes(meta);
//String s = mapper.writeValueAsString(meta);
Object o = mapper.readValue(bytes, 0, bytes.length, Object.class);
//System.out.println(new String(s));
System.out.println(o);
}
出错信息为
Exception in thread "main" com.fasterxml.jackson.databind.exc.InvalidTypeIdException: Could not resolve type id 'com.gunma.report.bean.req.query.BaseGroup' as a subtype of [collection type; class java.util.List, contains [simple type, class com.gunma.report.entity.report.ReportPrecision]]: Not a subtype
at [Source: (byte[])"["com.gunma.report.bean.req.query.Meta",{"stats":null,"pagination":["com.github.pagehelper.PageInfo",{"total":0,"list":null,"pageNum":0,"pageSize":0,"size":0,"startRow":0,"endRow":0,"pages":0,"prePage":0,"nextPage":0,"isFirstPage":false,"isLastPage":false,"hasPreviousPage":false,"hasNextPage":false,"navigatePages":0,"navigatepageNums":null,"navigateFirstPage":0,"navigateLastPage":0}],"precisions":["com.gunma.report.bean.req.query.BaseGroup",{"fieldKey":"precision","fieldName":"精度","options":"[truncated 417 bytes]; line: 1, column: 446] (through reference chain: com.gunma.report.bean.req.query.Meta["precisions"])
Meta是自定义的一个类,如果读取List、Map 不会出问题。