【发布时间】:2021-10-30 18:18:32
【问题描述】:
我正在尝试以我从 Java 调试接口检索到的 JSON 格式的对象进行漂亮打印。这些对象是我的断点命中的方法的参数。
我在 BreakpointEvent 处理程序中的代码如下:
// event is the current BreakpointEvent
StackFrame sf = event.thread().frame(0);
for (Value v : sf.getArgumentValues()) {
try {
ObjectMapper mapper = new ObjectMapper();
System.out.println(mapper.writeValueAsString(v));
} catch (Exception e) {
e.printStackTrace();
}
}
但是,我得到的唯一输出是一堆{"collected":false},这根本没有帮助......
我可以手动进行检查,首先检查每个v 实现的精确接口(@987654324@、StringReference 等接口),然后使用相应的方法(v.getValues() 用于对象例如实现ArrayReference),并对我得到的所有值递归地执行相同的操作。
但是人工检查更容易出错,而且在代码和维护方面也更加繁重。我相信 Jackson 可以在这里做到这一点,但我没有让它发挥作用......
【问题讨论】: