跳至主要內容

JSON 轉 Java POJO 與 Record 產生器

支援 Java 17 Record 與 POJO Class 產出,自動配置 Jackson 註解與 Lombok 標籤

100% 瀏覽器本地端運算:輸入資料與檔案永不上傳伺服器,嚴格保護您的隱私安全。

JSON 轉 Java POJO 與 Record 產生器

Java POJO
快速範例:
樣式:
輸入 JSON 字串
16 行·325 字元

Java 資料模型與 JSON 反序列化架構

在現代 Java 後端開發(包含 Spring Boot、Quarkus 與 Micronaut 等框架)中,處理外部 HTTP RESTful API 或微服務間傳遞的 JSON 酬載時,資料傳輸物件(DTO,Data Transfer Object)或領域模型(Domain Model)的建立是日常不可或缺的工作。

手動撰寫大量 getter、setter、建構子以及 Jackson 註解不僅耗費時間,且容易在欄位型別或命名對齊上產生人為疏漏。本工具提供純前端、零伺服器傳輸之即時程式碼生成環境,支援 Java 17+ 標準 Record 與傳統 JavaBean POJO 雙重產出風格。


支援的 Java 程式碼風格與語法特性

1. Java 17+ Record 模式(推薦現代專案使用)

Java 17 成為主流 LTS 版本後,Record 提供了乾淨簡潔的不可變(immutable)資料承載語法:

import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;

public record UserProfile(
    @JsonProperty("userId")
    Long userId,
    @JsonProperty("userName")
    String userName,
    @JsonProperty("emailAddress")
    String emailAddress,
    @JsonProperty("roles")
    List<String> roles
) {}
  • 自動實作:JVM 原生自動產生全參數建構子、存取子方法、equals()、hashCode() 與 toString()。
  • 不可變性保障:所有欄位皆隱含 private final,杜絕執行階段非預期的狀態變更。
  • 序列化相容:完美搭配 Jackson jackson-databind 2.12+ 反序列化引擎。

2. 傳統 POJO 類別搭配 Lombok 註解

對於既有遺留系統或採用可變物件模型的企業專案,工具支援標準 POJO 類別結構,並可勾選整合 Lombok 標籤:

import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import com.fasterxml.jackson.annotation.JsonProperty;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class UserProfile {
    @JsonProperty("userId")
    private Long userId;

    @JsonProperty("userName")
    private String userName;

    @JsonProperty("emailAddress")
    private String emailAddress;
}

欄位型別推斷與映射邏輯

轉換器深度掃描 JSON 語法樹,遵循以下嚴謹型別規則:

  1. 整數數值 (Integers):
    • 數值位於 -2147483648 至 2147483647 區間時,推斷為 Integer。
    • 超過 32 位元整數範圍時,自動升級為 Long。
  2. 浮點數值 (Floating-point):一律推斷為雙精度 Double。
  3. 布林值 (Booleans):映射為物件包裝型別 Boolean,允許為空。
  4. 字串 (Strings):映射為 String。
  5. 陣列 (Arrays):
    • 純量元素陣列映射為泛型 List<T>(例如 List<String>、List<Integer>)。
    • 物件陣列映射為 List<ItemDto>,並遞迴生成子類別結構。
  6. 巢狀物件 (Objects):自動抽取並以 PascalCase 命名規則建立獨立子類別。

操作指南與使用步驟

  1. 貼上或載入 JSON 資料:將原始 API 回應或設定檔 JSON 貼入左側編輯框,亦可點擊「載入範例」按鈕快速體驗。
  2. 選擇輸出風格:於上方工具列切換「Java 17 Record」或「POJO (Lombok / Getters)」。
  3. 設定類別名稱:自訂根類別(Root Class)名稱(預設為 RootDto)。
  4. 一鍵複製:點擊右上角「複製程式碼」按鈕,即可將產出的 Java 程式碼直接貼入 IDE(IntelliJ IDEA、Eclipse 或 VS Code)中使用。

常見問答

工具產生的 Java Record 與傳統 POJO Class 有何不同?
Java 17 引入的 Record 屬於不可變(immutable)資料載體,語法簡潔且自動產生 equals、hashCode 與 toString;傳統 POJO 則支援可變欄位並可搭配 Lombok @Data 註解簡化代碼。
轉換器是否支援 Jackson 與 Gson 序列化註解?
支援。當欄位命名採用駝峰法或包含特殊字元時,工具會自動產生 @JsonProperty 註解映射,確保與後端 JSON 序列化完全相容。
我的敏感 JSON 資料是否會被上傳到伺服器?
完全不會。所有程式碼轉換均在您的瀏覽器記憶體中於本地完成,斷網亦可使用,絕無資料外洩風險。
遇到巢狀物件或 JSON 陣列時如何組織 Java 類別?
轉換引擎會遞迴解析巢狀物件結構,自動以大駝峰命名法抽取各子物件為獨立的靜態內部類別或獨立類別,陣列則自動封裝為 List<T> 泛型容器。
若欄位值為 null 或數字小數點,Java 型別如何推斷?
整數數值自動推斷為 Integer 或 Long,含小數點數值推斷為 Double,布林值為 Boolean,字串為 String,遇到 null 或未定型別則推斷為 Object。