DaiZZZZZ 2019-09-10 14:51 采纳率: 0%
浏览 594

ObjectMapper 读数据异常的问题

用ObjectMapper 将对象转成 bytes,再重新读取。读取时,出错

    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 不会出问题。

  • 写回答

1条回答 默认 最新

  • 关注
    评论

报告相同问题?

悬赏问题

  • ¥15 chaquopy python 安卓
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 CSS实现渐隐虚线框
  • ¥15 有没有帮写代码做实验仿真的
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥30 vmware exsi重置后登不上
  • ¥15 易盾点选的cb参数怎么解啊
  • ¥15 MATLAB运行显示错误,如何解决?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容