Jackson 没有反序列化已序列化的通用列表

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 没有反序列化已序列化的通用列表

基础教程推荐