2

我需要以我的方式反序列化 json 属性(字段)org.codehaus.jackson。我知道自定义@JsonDeserializer选项,但这仅在您需要反序列化数组的给定值时才有用。我需要反序列化数组和数组本身的值。具体来说,我需要ForreignCollection从 ORMLite 反序列化,因此我应该能够以编程方式创建ForeignCollectionField并向其中添加值。

@JsonProperty
@ForeignCollectionField
private ForeignCollection<PerformerLocalized> localized;

有什么想法,如何管理它?

4

1 回答 1

3

@JsonDeserialize可以同时使用容器和值,如下所示:

@JsonDeserialize(using=MyContainerDeserializer.class, // this would apply to Collection
   contentUsing=ValueDeserializer.class) // and this to value type

请注意,通常Collection反序列化器不处理值,而只是委托它(使事情变得很好模块化)。但是您显然可以使用反序列化器进行不同的选择;要么委托,要么直接处理。如果要委托,您可能希望实现ContextualDeserializer接口,以便能够解析委托反序列化器。

于 2012-09-13T16:14:56.100 回答