Jackson

Spring支持Jackson JSON库。

基于Jackson的JSON MVC视图

MappingJackson2JsonView使用Jackson库的ObjectMapper将响应内容呈现为JSON。默认情况下,模型映射的整个内容(除了特定于框架的类)都被编码为JSON。对于需要过滤映射内容的情况,您可以使用modelKeys属性指定要编码的特定模型属性集。您还可以使用extractValueFromSingleKeyModel属性,使单键模型中的值被提取并直接序列化,而不是作为模型属性映射。

您可以通过使用Jackson提供的注解根据需要自定义JSON映射。当您需要进一步控制时,可以通过ObjectMapper属性注入自定义ObjectMapper,用于为特定类型提供自定义JSON序列化器和反序列化器的情况。

基于Jackson的XML视图

MappingJackson2XmlView使用Jackson XML扩展XmlMapper将响应内容呈现为XML。如果模型包含多个条目,您应该通过使用modelKey bean属性明确设置要序列化的对象。如果模型包含单个条目,则会自动序列化。

您可以根据需要使用JAXB或Jackson提供的注解自定义XML映射。当您需要进一步控制时,可以通过ObjectMapper属性注入自定义XmlMapper,用于为特定类型提供自定义XML序列化器和反序列化器的情况。