从调试器在IntelliJ Idea中获取对象作为JSON

时间:2018-12-14 08:35:08

标签: json debugging intellij-idea

是否有可能像Json一样从调试器中获取整个对象? 有一个选项View text,但我可以以某种方式View JSON吗?

5 个答案:

答案 0 :(得分:15)

根据@Mr Han's answer的建议,这是您可以执行的操作:

通过以下方式添加一种新方法,以json的方式在Intellij调试器中查看对象

  • 转到File | Settings | Build, Execution, Deployment | Debugger | Data Views | Java Type Renderers
  • 点击+添加新的渲染器
  • 命名为JSON renderer
  • java.lang.Object供应Apply renderer to objects of type
  • 选择Use following expression:并提供如下表达式:
if (null == this || this instanceof String)
  return this;

new com.google.gson.GsonBuilder().setPrettyPrinting().create().toJson(this);
  • 点击OK
  • 现在,当您在变量上选择Copy Value时,它将复制为json。 enter image description here

答案 1 :(得分:4)

或者,如here所示,您可以在调试监视器中使用以下代码:

new ObjectMapper()
    .setSerializationInclusion(JsonInclude.Include.NON_NULL)
    .writerWithDefaultPrettyPrinter()
    .writeValueAsString( myObject )

答案 2 :(得分:2)

您可以使用IntelliJ的Show as ...插件。

  

一个小插件,用于显示调试器和控制台之外的格式化数据。

     

使用IntelliJ的内置格式化功能。   不再需要将值从调试器或控制台复制到文件中以在那里格式化它们。支持以下格式:JSON,SQL,XML,Base64编码的JSON,Base64编码的文本

答案 3 :(得分:1)

如果您在项目中具有gson依赖性,则可以创建监视变量

new GsonBuilder().setPrettyPrinting().create().gson.toJson(myObject)

其中myObject是您的对象。

答案 4 :(得分:-1)

只需遵循:文件|设置|构建,执行,部署|调试器数据视图Java类型渲染器,点击+添加新渲染, copy is OK :) u can choose another jar to format it

现在,申请,加入它〜