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 没有反序列化已序列化的通用列表
基础教程推荐
猜你喜欢
- 减少 JVM 暂停时间 >1 秒使用 UseConcMarkSweepGC 2022-01-01
- “未找到匹配项"使用 matcher 的 group 方法时 2022-01-01
- Java Keytool 导入证书后出错,"keytool error: java.io.FileNotFoundException &拒绝访问" 2022-01-01
- 在 Libgdx 中处理屏幕的正确方法 2022-01-01
- 降序排序:Java Map 2022-01-01
- 如何使用 Java 创建 X509 证书? 2022-01-01
- Java:带有char数组的println给出乱码 2022-01-01
- FirebaseListAdapter 不推送聊天应用程序的单个项目 - Firebase-Ui 3.1 2022-01-01
- 无法使用修饰符“public final"访问 java.util.Ha 2022-01-01
- 设置 bean 时出现 Nullpointerexception 2022-01-01