Jackson

Spring 提供对 Jackson JSON 库的支持。

基于 Jackson 的 JSON MVC 视图

MappingJackson2JsonView 使用 Jackson 库的 ObjectMapper 来渲染响应内容为 JSON。默认情况下,模型图的全部内容(除了框架特定的类之外)被编码为 JSON。对于需要过滤 Map 内容的情况,你可以通过使用 modelKeys 属性来指定一组特定的模型属性进行编码。你也可以使用 extractValueFromSingleKeyModel 属性来让单键模型中的值直接被提取和序列化,而不是作为模型属性的映射。

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

基于 Jackson 的 XML 视图

MappingJackson2XmlView 使用 Jackson XML 扩展的 XmlMapper 来将响应内容渲染成 XML。如果模型包含多个条目,你应该通过使用 modelKey bean 属性明确地设置要被序列化的对象。如果模型包含一个条目,它将自动被序列化。

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

:::tips 等后续学了 MVC 配置 再来补充这里的视图如何进行配置的 demo :::