有没有办法将 Jackson 的 SerializationFeature 与注释一起使用
Is there a way to use Jackson's SerializationFeature with annotations
我正在尝试使用 SerializationConfig.Feature.WRITE_CHAR_ARRAYS_AS_JSON_ARRAYS
,但我没有自己配置映射器,而是完全依赖注释并让 Spring 的 RestTemplate 自动(反)序列化。有没有办法在这种情况下启用上述功能(即仅注释)?
注意:我正在使用 Jackson 1.x,由于其他库无法升级...
是的,有可能。
检查此 link:http://jackson.codehaus.org/1.7.0/javadoc/org/codehaus/jackson/map/annotate/JsonSerialize.html
示例:
@JsonSerialize(using=MySerializer.class,
as=MySubClass.class,
include=JsonSerialize.Inclusion.NON_NULL,
typing=JsonSerialize.Typing.STATIC
)
使用 JAX-RS(如 DropWizard),您实际上可以使用 @JacksonFeatures
注释资源端点
public class Resource {
@Path("item")
@GET
@JacksonFeatures(serializationEnable={ SerializationFeature.WRAP_ROOT_VALUE })
public Pojo getItem(String id) {
...
}
}
我不知道 Spring 是否公开了类似的功能,但似乎有可能。如果没有,他们应该能够添加以允许 SerializationFeature
s / DeserializationFeature
s 的每个端点 setting/clearing。因此,如果它不可用,也许可以为 Spring 项目提交功能请求?
我正在尝试使用 SerializationConfig.Feature.WRITE_CHAR_ARRAYS_AS_JSON_ARRAYS
,但我没有自己配置映射器,而是完全依赖注释并让 Spring 的 RestTemplate 自动(反)序列化。有没有办法在这种情况下启用上述功能(即仅注释)?
注意:我正在使用 Jackson 1.x,由于其他库无法升级...
是的,有可能。
检查此 link:http://jackson.codehaus.org/1.7.0/javadoc/org/codehaus/jackson/map/annotate/JsonSerialize.html
示例:
@JsonSerialize(using=MySerializer.class,
as=MySubClass.class,
include=JsonSerialize.Inclusion.NON_NULL,
typing=JsonSerialize.Typing.STATIC
)
使用 JAX-RS(如 DropWizard),您实际上可以使用 @JacksonFeatures
public class Resource {
@Path("item")
@GET
@JacksonFeatures(serializationEnable={ SerializationFeature.WRAP_ROOT_VALUE })
public Pojo getItem(String id) {
...
}
}
我不知道 Spring 是否公开了类似的功能,但似乎有可能。如果没有,他们应该能够添加以允许 SerializationFeature
s / DeserializationFeature
s 的每个端点 setting/clearing。因此,如果它不可用,也许可以为 Spring 项目提交功能请求?