【发布时间】:2013-02-01 13:43:35
【问题描述】:
我正在使用 RESTeasy 将负载中的 json 转换为 Web 服务器中的 POJO。当其中一个 POJO 成员是通用成员时,我遇到了问题。
例如:
public class MainPOJO
{
private MyParentClass c;
[...]
}
public class MyParentClass
{
[...]
}
public class MyFirstChildClass extends MyParentClass
{
private int number;
[...]
}
public class MySecondChildClass extends MyParentClass
{
private boolean isTrue;
[...]
}
在客户端发出的请求负载(PUT)中,您可以找到类似这样的 json (注意我在“c”属性中发送了一个等效于 json 格式的 MyFirstChildClass):
{
c: {number:10}
}
有没有办法告诉 RESTeasy MainPOJO 中的属性“c”可以是 MyParentClass、MyFirstChildClass 或 MySecondChildClass 的实例?
目前,它只是尝试实例化一个 MyParentClass 新实例,但抛出一个错误,指出该属性,例如,“数字”未标记为可忽略。但我希望它可以更智能,并根据 json 中的属性从树中正确的类中实例化一个对象。
有可能吗?
谢谢!
【问题讨论】:
-
您使用的是 Jettison 还是 Jackson 提供程序?
-
我们正在使用 Jackson 提供程序。
标签: java json rest jax-rs pojo