Jackson is not deserialising a generic list that it has serialised(Jackson 没有反序列化已序列化的通用列表)
本文介绍了Jackson 没有反序列化已序列化的通用列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
当使用 Apache Jersey 和 Jackson 进行 JSON 序列化(在服务器和客户端上)时,我在反序列化通用列表时遇到了问题.
我生成的 JSON 如下,data"中的所有 3 个类都实现了CheckStatusDetail":
<代码>{错误代码":0,错误消息":空,类型":数组",数据" : [ {"@class" : "com.rrr.base.status.module.dto.DiscoveryAgentCheckStatusDetail",服务器信息":{"@class" : "com.rrr.base.util.discovery.config.xml.XMLServerInfo",名称":java",位置":西奥",描述":sddgs",组":java",别名":[水星"]}}, {"@class" : "com.rrr.base.status.module.dto.MongoDBCheckStatusDetail",地址":[本地主机:27017"],版本":2.5",已连接":真}, {"@class" : "com.rrr.base.status.module.dto.NetworkCheckStatusDetail",裂脑":假}],计数":3,状态":0}
生成此 JSON 的对象如下所示,我在客户端使用相同的类:
公共类 NSResponse;实现可序列化{私有静态最终长序列版本UID = 1L;公共静态最终 int STATUS_OK = 0;公共静态最终 int STATUS_ERROR = -1;public static final String TYPE_OBJECT = "object";public static final String TYPE_ARRAY = "array";私有 int 状态;私人 int 错误代码;私有字符串错误消息;私有字符串类型;私人名单<T>数据;私人整数计数;公共 NSResponse() { }公共 NSResponse(int errorCode, String errorMessage) {this.status = STATUS_ERROR;this.errorCode = 错误代码;this.errorMessage = 错误消息;}公共 NSResponse(T 数据) {this.status = STATUS_OK;this.type = TYPE_OBJECT;this.data = new ArrayList();this.data.add(data);this.count = this.data.size();}公共 NSResponse(列出数据){this.status = STATUS_OK;this.type = TYPE_ARRAY;this.data = 数据;this.count = (data == null) ?0:数据大小();}/* 省略 getter 和 setter *
织梦狗教程
本文标题为:Jackson 没有反序列化已序列化的通用列表


基础教程推荐
猜你喜欢
- 如何对 Java Hashmap 中的值求和 2022-01-01
- 修改 void 函数的输入参数,然后读取 2022-01-01
- 问题http://apache.org/xml/features/xinclude测试日志4j 2 2022-01-01
- Struts2 URL 无法访问 2022-01-01
- 使用堆栈算法进行括号/括号匹配 2022-01-01
- RabbitMQ:消息保持“未确认"; 2022-01-01
- Spring AOP错误无法懒惰地为此建议构建thisJoinPoin 2022-09-13
- 存储 20 位数字的数据类型 2022-01-01
- 无法复制:“比较方法违反了它的一般约定!" 2022-01-01
- REST Web 服务返回 415 - 不支持的媒体类型 2022-01-01