2012-09-12 60 views
2

我需要使用org.codehaus.jackson绝对地反序列化json属性(字段)。我知道自定义@JsonDeserializer选项,但这只是有用的,如果你需要反序列化给定的数组值。我需要反序列化数组和数组本身的值。具体来说,我需要从ORMLite反序列化ForreignCollection,所以我应该能够以编程方式创建ForeignCollectionField并向其中添加值。Jackson中的自定义JSON数组反序列化

@JsonProperty 
@ForeignCollectionField 
private ForeignCollection<PerformerLocalized> localized; 

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

回答

3

@JsonDeserialize既可以用容器和价值观,就像这样:

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

注意,通常Collection解串器不处理值,而只是委托它(把事情很好地模块化)。但你显然可以选择与你的反序列化器不同的方式;代表或直接处理。如果你想委托,你可能想要实现ContextualDeserializer接口,以便能够解析delegatee解串器。