JSON 轉 Kotlin

從 JSON 產生適用 kotlinx.serialization、Gson、Moshi 或 Jackson 的 Kotlin data class

JSON 輸入

選項

模型
屬性名稱
可為 null 的屬性
序列化
進階
類別配置

Kotlin 輸出

貼上 JSON 或載入範例,即可產生 Kotlin 程式碼。

JSON 轉 Kotlin 會產生什麼

JSON 轉 Kotlin 會將 API 回應或任何 JSON 範例轉換為 Kotlin data class,可搭配 kotlinx.serialization、Gson、Moshi、Jackson,或不使用函式庫。當屬性名稱與鍵不同時(例如 user_name → userName),所選函式庫的註解(@SerialName、@SerializedName、@Json 或 @JsonProperty)會把它對應回 JSON。class、object、when、fun 等關鍵字會以反引號包住;123abc 或 user-name 這類不是有效名稱的鍵,會依命名設定改名並加上對應,或以反引號保留原名。

使用方式
  1. 1.貼上 JSON、上傳或拖放 .json 檔案,或載入範例。
  2. 2.設定根型別名稱、屬性命名方式與可為 null 的方式。
  3. 3.選擇序列化函式庫;若希望每個類別都有無引數建構式,請開啟預設值。
  4. 4.在進階中設定套件,或將類別巢狀於根類別內。
  5. 5.閱讀輸出下方的說明,然後複製程式碼或下載 .kt 檔案。
型別如何推斷
  • •會檢查陣列中的每個項目,而不只是第一個,同一陣列中的物件會合併。
  • •部分物件缺少的鍵為選用,會成為 T? = null;有時為 null 的鍵會成為 T?。兩者分開處理,因此 {"id": 1, "name": "A"} 與 {"id": 2} 會得到 val name: String? = null。
  • •可放入 32 位元的整數為 Int,更大的為 Long,超過 64 位元的為 BigInteger(kotlinx.serialization 為 JsonPrimitive)。超過 ±2^53 的值會附上說明,因為 JavaScript 用戶端可能會將其四捨五入。
  • •同一位置出現 1 與 2.5 時會放寬為 Double;其他混合情況會提出說明。
  • •型別對應:字串 → String,小數 → Double,布林值 → Boolean,陣列 → List<T>,物件 → data class,空物件 → class,未知或混合 → Any?(kotlinx.serialization 為 JsonElement?)。
限制與隱私

範例只反映資料某一次的樣貌,而不是完整的 API 合約。依賴程式碼前,請檢查選用欄位、通用型別與數字寬度。產生的程式碼需要各函式庫的一般設定:serialization 編譯器外掛、Moshi 程式碼產生或 jackson-module-kotlin。Gson 會略過 Kotlin 建構式,因此除非每個屬性都有預設值,非 null 屬性仍可能收到 null。輸入上限為 5 MB 與 256 層巢狀;從 2 MB 起,需按下「產生」按鈕才會產生。所有處理都在您的瀏覽器中執行,JSON 不會上傳。

CodingTool 已正式上線於

Launched on StartupBaseCodingTool.dev - Free, Fast & Easy Developer Tools in One Place | Product HuntCodingTool - Featured on Startup FameFazier badgeListed on Turbo0Featured on Twelve ToolsFeatured on Findly.toolsLaunchpadly Startup DirectoryCodingTool.dev — Featured on Smol Launch