Spring Boot Actuator JMX 端点的漂亮打印输出

Pretty print output of Spring Boot Actuator JMX endpoints

我有一个 Spring 引导控制台应用程序,我通过 JMX 访问执行器端点。问题是返回的文本打印不漂亮,也不是 JSON。它看起来像这样:

{context=application, parent=null, beans=[{bean=helloWorldApplication, scope=singleton, type=com.surpreso.spring_skeleton.HelloWorldApplication, resource=null, dependencies=[helloWorldService]}, {bean=helloWorldService, scope=singleton, type=com.surpreso.spring_skeleton.HelloWorldService, resource=file [C:/src-tmp/spring-skeleton/target/classes/com/surpreso/spring_skeleton/HelloWorldService.class], dependencies=[]}, {bean=com.surpreso.spring_skeleton.DefaultConfig,  ...

将其转化为可读格式的最佳方法是什么?是否可以将 JMX 执行器配置为漂亮打印?是否可以将 JMX 执行器配置为使用 JSON?

有一个关于 Pretty print JSON output of Spring Boot Actuator endpoints 的相关问题,但在这种情况下,我坚持使用 JMX,因为我没有 Web 应用程序。作为下一步,我将尝试 CRaSH,但我很好奇是否可以将 JMX 执行器配置为更有用。

我正在使用 Spring Boot 的 1.2.5 版。

更新:CRaSH 实现使用相同的格式,因此不是解决方案。

更新 2:我看到 this 在 1.3.0 中提交了关于 "Use configured ObjectMapper, if available, in all EndpointMBeans" 的内容,但我不知道要为漂亮的打印设置哪些属性。快到了...

更新 3spring.jackson.serialization.indent_output=true 对 CRaSH 界面没有任何影响。我现在在 1.3.0.M2.

您粘贴的输出一个有效的json文档。是什么让您认为它完全无效?

如果您想打印格式,这实际上取决于您访问 JMX 端点的方式。例如,如果您通过 JConsole 访问它,我不确定漂亮的打印输出对于大型文档是否具有更高的可读性。如果您手动访问 JMX 端点,那么您可以读取字符串并非常轻松地漂亮地打印输出(JSONObject 有一个 toString 方法,它采用您想要在文档上应用的缩进)。

关于 CRaSH,这真的无关紧要。执行器端点位于 CRaSH 之外,不使用其任何功能。

编辑:我的错误,这是无效的 JSON,我在 Spring 引导问题跟踪器中创建了 #3658