簡體   English   中英

Java 中的漂亮打印對象層次結構?

[英]Pretty-print object hierarchy in Java?

我正在從事一個數據分析項目,我們在該項目中代表了您在一種語言中找到的許多基本實體。 盡管出於調試目的,我想找到一種更好的方法來打印它們的對象圖。 因此,例如,我們可能有:

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 層深,這就是真正的問題出現的時候。

這遠非完美,但這個問題確實值得回答。

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"
   }
]
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM