【发布时间】:2013-05-20 04:43:30
【问题描述】:
我使用 Json-Jackson 来序列化/反序列化我的对象,并且内置类一切顺利。
String、int等都很好。但现在我必须序列化/反序列化以特定方式构建的对象。遵循声明:
class A implements Serializable {
private String id;
private List<B> bobjs;
...getters & setters (but not for String id)
}
class B implements Serializable {
private String id;
private String label;
private List<C> cobjs;
...getters & setters (but not for String id)
}
class C implements Serializable {
private String id;
private String label;
private BigDecimal counts;
...getters & setters (but not for String id)
}
如果我使用标准的序列化器/反序列化,它会告诉我一条错误消息,例如“java.lang.UnsupportedOperationException...”,因此它无法序列化/反序列化 bobjs。
我怎样才能以一般的方式做到这一点,所以我不写 3 个序列化器/反序列化器,而只告诉 Json-Jackson 当遇到“List”类型的对象时,它必须像数组一样序列化/反序列化它(例如)。
谢谢大家!
附:我在 google 上找到了示例,但它们仅适用于简单对象,而不适用于由 List.. 等组成的 List。
【问题讨论】:
-
你的问题很不清楚。包括您的自定义序列化程序(如果有)和完整的异常堆栈跟踪。
-
您能添加源代码和示例对象吗?我认为,您的问题与杰克逊无关。如果您仍然需要我们方面的帮助,请改进您的问题。
-
完整的堆栈跟踪是:java.lang.UnsupportedOperationException(通过引用链:TheResult["customData"]->java.util.HashMap["Datas"]->Data["bobjs"]- >java.util.ArrayList[0]->B["cobjs"]->java.util.ArrayList[0]->...