【问题标题】:Custom JSON array deserialization in JacksonJackson中的自定义JSON数组反序列化
【发布时间】:2012-09-12 22:18:56
【问题描述】:

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

@JsonProperty
@ForeignCollectionField
private ForeignCollection<PerformerLocalized> localized;

有什么想法,如何管理?

【问题讨论】:

    标签: java android json jackson deserialization


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2011-04-12
      • 2013-01-18
      • 2014-08-02
      • 2013-10-10
      • 2016-01-29
      • 1970-01-01
      • 2019-08-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多