任何具有多个 类 别名的 JSON 到对象转换器?

Any JSON to Object converter that has alias for multiple classes?

我找到了 JETTISON 驱动程序来满足我的需要。

但出于某种原因,在使用 ArrayList 时,它在我的本地测试中工作,但在我的 jboss 服务器中部署时却没有。 (我会问这个作为另一个问题)

还有其他的吗?我已经尝试过使用 GSON 和 Jackson,但没有帮助。

这是我需要的结构:

class A
{
    List<A> memberList;
}

class B extends A

class C,D extends class A

我有一个对象 class B,其中包含 class C 和 D 的实例。

如果我使用 GSON 或 Jackson,当 class B 的对象转换为 JSON 时,它会丢失 C 和 D 的 class 类型。因此,当我转换它返回一个对象,我找不到列表 memberList 是否包含类型 C 或 D 的对象。

请帮忙!

我找到了一种使用 jackson 的方法。很好的解释here

基本上,对于上面的例子,我必须为 class A 提供一个符号,如下所示:

import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonSubTypes.Type;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.fasterxml.jackson.annotation.JsonTypeInfo.Id;

@JsonTypeInfo(use = Id.CLASS,
              include = JsonTypeInfo.As.PROPERTY,
              property = "type")
@JsonSubTypes({
    @Type(value = C.class),
    @Type(value = D.class),
    })