【问题标题】:Deserialize Json Object having abstract class in java在java中反序列化具有抽象类的Json对象
【发布时间】:2026-01-28 13:15:01
【问题描述】:

我正在使用 flexjson 来反序列化 json 字符串

我的课程如下:

public abstract class Content{
int id;}

public class LoyaltyProgram{
Content content;
//
}

我如何反序列化以下 json 对象

{"name":"TESTER123","re​​setFrequencyHours":"1","target":"5","totalCount":"5","content":138}

目前我正在使用流代码进行反序列化:

new JSONDeserializer<LoyaltyProgram>()
    .use(null, LoyaltyProgram.class).deserialize(json);

这会引发以下错误: [内容]:尝试实例化内容实例时出现异常

【问题讨论】:

  • 规则号Java之1:你不能实例化一个抽象类——就是这样

标签: java json json-deserialization flexjson


【解决方案1】:

你需要给extend 内容加上一个具体的类。

public class SomeContent extends Content {
}

也就是说,据我所知,您的 Content 类仅包含一个 int 字段。您的 JSON 对象和 LoyaltyProgram 都应该将 int content 而不是 Content content 作为参数。

【讨论】:

    最近更新 更多