2

我正在从事一个数据分析项目,我们在其中代表了您在一种语言中找到的许多基本实体。尽管出于调试目的,我想找到一种更好的方法来打印出他们的对象图。因此,例如,我们可能有:

Function: Average
Description: some description
Overload #1:
    parameter-set: paramset-a
        columns: 
           currency: string
           value: double
           scale: integer
    result-set: result-set-a
    preference: first-find
Overload #2: ...
Overload #3: ...

我的问题

比方说,在上面的例子中,Function是我的根对象。函数有一些属性和一系列重载,每个重载都有自己的属性和子对象。

是否有一个库可以帮助我以格式良好的方式在根函数下打印对象图?

PS:上面的例子比较琐碎;在我们的许多情况下,对象层次结构有 6 到 10 层深,这就是真正的问题出现的时候。

4

1 回答 1

1

这远非完美,但这个问题确实值得回答。

https://github.com/EsotericSoftware/jsonbeans是完成此类事情的一种方法。它将任意 Java 对象(无需注释字段或任何内容)转换为 JSON,并包含一个漂亮的打印方法。它可以大致完成您的要求。

使用这个库,您可以执行以下操作:

Json json = new Json();
System.out.println(json.prettyPrint(person));

对于一些示例数据,您可能得到的输出如下所示:

{
"name": "Nate",
"age": 31,
"numbers": [
   {
      "name": "Home",
      "class": "com.example.PhoneNumber",
      "number": "206-555-1234"
   },
   {
      "name": "Work",
      "class": "com.example.PhoneNumber",
      "number": "425-555-4321"
   }
]
}
于 2020-01-30T09:16:53.587 回答