Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Android Studio调试器导出对象_Android_Debugging_Intellij Idea_Android Studio_Code Generation - Fatal编程技术网

从Android Studio调试器导出对象

从Android Studio调试器导出对象,android,debugging,intellij-idea,android-studio,code-generation,Android,Debugging,Intellij Idea,Android Studio,Code Generation,是否有一种方法可以从Android Studio(IntelliJ IDEA)调试器导出对象。例如,VisualStudio 最后,我需要创建/生成使用基于服务器响应的值初始化的对象。因此,实现这一目标的任何其他解决方案都是受欢迎的。这可能比您想要的更麻烦,但以下方法确实有效: 如@Donn_Felker所述,创建自定义数据类型呈现器。假设类路径上有一个类可以将对象序列化为JSON(或您感兴趣的其他格式),请在数据类型呈现器中使用该对象生成包含序列化数据的字符串 在我的例子中,我有一个项目名为G

是否有一种方法可以从Android Studio(IntelliJ IDEA)调试器导出对象。例如,VisualStudio


最后,我需要创建/生成使用基于服务器响应的值初始化的对象。因此,实现这一目标的任何其他解决方案都是受欢迎的。

这可能比您想要的更麻烦,但以下方法确实有效:

如@Donn_Felker所述,创建自定义数据类型呈现器。假设类路径上有一个类可以将对象序列化为JSON(或您感兴趣的其他格式),请在数据类型呈现器中使用该对象生成包含序列化数据的字符串

在我的例子中,我有一个项目名为GsonProvider的类,它本质上是Google的GSON的工厂类。我在数据类型渲染器中使用的表达式是:
com.example.GsonProvider.getGson().toJson(this)
类名需要完全限定

如果您可以在“呈现”已检查的节点时使用此选项,那就太好了,但不幸的是,虽然您可以在那里看到序列化的值,但似乎没有任何方法可以将其复制到剪贴板或以任何方式导出

因此,将表达式添加到“展开节点时”部分。通过选择“使用表达式列表”,然后添加一个名为“json”的表达式和一个值
com.example.GsonProvider.getGson().toJson(this)

我使用名称“json”保存自定义渲染器


有了它,您可以在“variables”或“watches”窗口中右键单击一个变量,然后选择“View As”-->json,您将看到它是一个json字符串。右键单击它,然后选择“复制数据”。这将把json字符串复制到剪贴板。

以下是如何将名为
output
的变量导出到剪贴板:

  • 添加断点并在调试模式下执行代码
  • 点击断点时,选择对象并单击上下文菜单中的“计算表达式”
  • 在表达式字段中编写一个表达式,将对象转换为
    字符串
    ,例如,如果您的项目可以访问
    Gson

    new GsonBuilder().create().toJson(output)
    
  • 在结果的关联菜单中,选择“复制值”


谢谢。这提供了一种实现类似于我想要的东西的方法,但在我的情况下,我最终将不得不从头开始构建所有东西。我不使用JSON…重点是它不必是JSON,你可以使用任何你想要的编码,只要你有一个可以进行序列化的类。我只是使用标准的Java序列化,所以没有什么东西能像JSON那样给我一个可读性好的对象。仍然很麻烦,但是如果你把对象转换成可序列化的,然后序列化,并对结果进行base-64编码……哈哈,一个有趣的想法。不是为了我的目的,而是为了一般。我会把这个问题保留一段时间,如果没有人想出一个更接近Object Explorer实现的工具/方法,那么我会接受你们的方法,认为你们是InteliJ IDEA(Android Studio)目前最好的方法。