任何具有多个 类 别名的 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),
})
我找到了 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),
})