Jackson PrettyPrint 春季 4 号秀

2024-04-01

目标是使用 PrettyPrint 从控制器做出 Jackson 格式响应。 这就是我的配置:

@EnableWebMvc
@Configuration
public class JacksonConfig extends WebMvcConfigurerAdapter {
    @Override
    public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
        for (HttpMessageConverter<?> converter : converters) {
            if (converter instanceof MappingJackson2HttpMessageConverter) {
                MappingJackson2HttpMessageConverter jsonMessageConverter = (MappingJackson2HttpMessageConverter) converter;
                ObjectMapper objectMapper = jsonMessageConverter.getObjectMapper();
                objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
                objectMapper.enable(SerializationFeature.INDENT_OUTPUT);
            }
        }
    }
} 

这就是控制器的样子:

@RequestMapping(value = "/facebook", method = RequestMethod.POST, produces = "application/json")
public @ResponseBody Map<String, Object> authorizeViaFacebook(
        @RequestParam(value = "token") String token) throws DefaultException{

    Facebook facebook = this.facebookUtility.getFacebook(token);
    org.springframework.social.facebook.api.User facebookUserProfile = facebook.userOperations().getUserProfile("me");

    User loggedInUser = User.signInWithFacebookProfile(facebookUserProfile);

    return ImmutableMap.of("token", loggedInUser.tokenForAuthentication(), "user", loggedInUser);
}

但无论我做什么,它仍然会直接打印出来。我尝试了不同的配置但仍然没有成功。

这是 Jackson 的 POM 文件:

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>2.6.0</version>
    </dependency>

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.6.0</version>
    </dependency>

Spring版本是4.2.4.RELEASE。

如何让 Jackson 使用 PrettyPrint 格式?


当我尝试在 Roo 生成的项目中配置 Jackson 的对象映射器时,我曾经遇到过类似的问题。您需要将这些代码片段放入 webmvc-config 中,以将默认的对象映射器替换为您的自定义对象映射器:

<mvc:annotation-driven>
   <mvc:message-converters register-defaults="false">
       <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
           <property name="objectMapper">
               <bean class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean">
                   <property name="objectMapper">
                       <array>
                           <bean class="com.yourproject.example.CustomObjectMapper"/>
                       </array>
                   </property>
               </bean>
           </property>
       </bean>
   </mvc:message-converters>
</mvc:annotation-driven>

希望能帮助到你。为了能够使用基于代码的配置来配置 Jackson,您需要设置 WebApplicationInitializer 您可以通过链接找到更多信息:http://docs.spring.io/spring/docs/4.2.x/javadoc-api/org/springframework/web/WebApplicationInitializer.html http://docs.spring.io/spring/docs/4.2.x/javadoc-api/org/springframework/web/WebApplicationInitializer.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jackson PrettyPrint 春季 4 号秀 的相关文章

随机推荐

  • XAML 文件 (WPF) 的编译

    我想了解XAML文件的编译过程 很抱歉将这个问题放在这里 但我确实没有找到任何资源深入解释这个过程 我知道 XAML 被编译成 baml 文件 但是 baml 是从生成的 g cs 文件编译而来的吗 或者 baml 是独立的 并且是从生成的
  • 是否可以使用 Sitemesh 直接在 JSP 中定义装饰器?

    我知道我应该在配置文件或我自己的子类中定义装饰器ConfigurableSiteMeshFilter 例如 public class SitemeshFilter extends ConfigurableSiteMeshFilter Ove
  • iOS/iPhone:当应用程序处于“拒绝”状态时,应用程序内购买沙箱被破坏?

    See 主要推力下面跳到我问题的主要内容 我的 iOS 应用程序在 Apple 审核过程中被拒绝 原因很简单 但很容易修复 但是 我想对新版本进行一次测试 包括重新测试我们的应用内购买 应用程序中只有一个可购买的项目 现在 应用程序在初次检
  • Python astimezone() 意外结果

    给定一个变量 其中包含巴黎时区 2000 01 01 00 01 的日期时间 据我所知 冬季为 UTC 2 datetime datetime 2000 1 1 0 1 tzinfo pytz timezone Europe Paris 我
  • jquery mobile 1.4页面多页面onpagecreate管理以避免双触发器火灾

    有人可以清除多页中事件处理程序的使用吗 文档很好 但不要警告混合使用时可能出现的冲突 例如 作为一个新手 我注意到如果我将事件处理程序放在这个 html 结构中 我会得到双重触发 该结构来自以下 或此时忽略 文档的逻辑 div div di
  • 在 PHP 中使用单引号(转义)

    我正在 PHP 标签内编写 HTML 代码 已经编写了锚标记样式 如果我更改某些部分将会影响 所以我试图在跨度 onclick 事件中编写我的代码 这是我的代码 div span array1 i name span div 如果单击该数组
  • 将几何图形转换为 BufferGeometry

    据我了解 Geometry 存储顶点和面的 javascript 对象结构 而 BufferGeometry 仅通过 Float32Arrays 等存储原始 gl 数据 有没有什么方法可以将标准 Geometry 转换为 BufferGeo
  • html5 Android 应用程序上的 Google 导航

    我只是想知道是否有人可以解释为什么这种情况发生在我身上 我正在使用phonegap 和jquerymobile 开发一个移动应用程序 该应用程序的功能之一是引导用户使用导航工具 对于 iOS 我们选择 Waze 添加它真的很容易 a hre
  • 平板电脑和手机中导航抽屉的宽度不同

    我试图为我的一个项目实施材料设计 here http www google com design spec patterns navigation drawer html 下面提到了 导航抽屉最大宽度是标准的5倍 增量 移动设备上为 56d
  • 如何将列表转换为字符串[重复]

    这个问题在这里已经有答案了 如何使用 Python 将列表转换为字符串 Use join xs 1 2 3 s join xs 如果列表包含整数 请在连接元素之前将元素转换为字符串 xs 1 2 3 s join str x for x i
  • Xcode 7,资产目录通用设备背景图片支持吗?

    我看过各种有关图像尺寸的旧帖子 但我找不到任何最新内容 甚至不知道是否可以仅使用资产目录来提供所有 iPad 和 iPhone 屏幕尺寸的图像 这是我找到的最好的帖子 但在 Xcode 7 中它没有显示 Retina 4 2x 或 iPho
  • Google 应用脚本、Gmail 中的 getBody()、正则表达式 \n

    晚上好 Google 应用程序脚本中的正则表达式换行符 n 存在此类问题 我正在使用 getbody 方法进行邮件解析并获取其中的一些 td valign middle width 43 align left img src http im
  • CoreBluetooth 应用程序在后台到底可以做什么?

    主题已经说明了一切 真的 就其存在而言 文档表明针对 iOS 设备上运行的 CoreBluetooth 框架编写的应用程序可以将 bluetooth central 添加到其后台权限列表中 从而在不活动时处理某种蓝牙事件 但exact事件是
  • OpenCL:为什么指向指针的指针不能作为参数传递给内核函数?

    你好 我只是想澄清一下为什么我们不能将 2D 数组指针作为参数传递给内核 为什么不允许 如果我使用它作为参数会发生什么 在内部 因为我知道代码会给出一些错误 请只做那些需要的 因为在 OpenCL 1 x 中设备有一个独立的地址空间 在设备
  • 包含可在源系统中定期更新的信息的事实表

    我正在构建一个维度数据仓库 并学习如何从仓库中的源系统对各种业务流程进行建模 我目前正在将数据仓库中源系统的 投标 工作投标 建模为事实表 其中包含以下信息 投标金额 预计收入 销售人员 出价状态 有效 待定 拒绝等 etc 问题在于 出价
  • 使用 jQuery 从多个选择元素中过滤表格

    我想根据用户从多个选择元素中选择的内容使用 jQuery 隐藏 显示来过滤表格 我希望用户能够从 1 2 或 3 个选择元素中选择多个值 因此 他们可能会选择 2 名培训师 1 名新兵和 1 名状态人员 或者可能只选择 1 名培训师 计划创
  • 如何使用 Google Maps Android API v2 绘制动态线(路线)

    我想知道使用 Google Maps API v2 在地图上绘制动态路线的最佳实践是什么 我想要一张能够在用户移动时延长路线的地图 使用 Polyline 和 PolylineOptions 似乎是明显的解决方案 但我就是找不到简单的加分方
  • 当用户开始在jquery中输入文本时,如何使TEXTBOX中的文本变为大写字母

    当用户开始在文本框中输入文本时 我们需要将这些字母变为大写字母 我不想使用 jQuery 解决方案 而是想使用 CSS 使输入中的文本显示为大写 text transform uppercase 无论它们输入为小写还是大写 然后 当您处理数
  • 由于 system.currentTimeMillis() 导致系统 CPU 使用率较高

    我正在我们的 Storm Supervisor Wheezy 机器 上调试高系统 CPU 使用率 不是用户 CPU 使用率 以下是观察结果 相关进程的 perf 输出 Events 10K cpu clock 16 40 java kern
  • Jackson PrettyPrint 春季 4 号秀

    目标是使用 PrettyPrint 从控制器做出 Jackson 格式响应 这就是我的配置 EnableWebMvc Configuration public class JacksonConfig extends WebMvcConfig