Go 結構體轉 JSON 示例生成器

貼上帶有 json 標籤的 Go struct 定義,即可自動生成對應的 JSON 示例資料。支援巢狀 struct、切片、omitempty 以及 json:"-",適合用於 API 模擬資料和 Postman 示例。

使用提示

  • 一次貼上多個 struct 時,巢狀欄位的型別會被自動解析並遞迴生成對應的示例物件(若找不到定義則用空物件 {} 代替,並顯示警告)。
  • 指定目標 struct 名稱後,即使輸入中包含多個 struct,也能選擇作為根物件的那一個(留空時預設使用第一個出現的 struct)。
  • 標記為 json:"-" 的欄位會從 JSON 輸出中排除。帶 omitempty 的欄位仍會照常輸出對應的鍵,如不需要請手動刪除。
  • 生成的數值僅是基於型別的佔位符(字串為 "example",數字為 1 等)。若要作為真實的 API 響應示例,請自行替換為實際資料。
  • 本工具與姊妹工具「JSON 轉 Go 結構體」正好方向相反。可將 Go 處理函式中定義的 struct 快速轉換為供前端或 QA 團隊使用的示例資料。

常見問題

手動將 Go 的 API 響應 struct 轉換為 JSON 很容易出錯,尤其是巢狀層級較深時,欄位型別或 json 標籤很容易理解錯誤。自動生成可以讓你更快地向前端或 QA 團隊提供準確的示例資料。

如果在輸入內容中找不到所引用 struct 的定義,該欄位的值會輸出為空物件 {},並在頁面上顯示警告資訊。將定義所在的 struct 一併貼上即可正確生成巢狀示例。

omitempty 只是 Go 端在編碼時省略零值的指示,因此對應的鍵仍會照常出現在示例 JSON 中。而標記為 json:"-" 的欄位在編碼時會被完全排除,因此也不會出現在示例 JSON 裡。

沒有,它們只是滿足型別要求的佔位符。字串為 "example",整數為 1,浮點數為 1.5,布林值為 true,都是固定值,實際使用時請自行替換。

不是。本工具是基於正規表示式和逐行分析的簡易解析器,並未使用真正的 Go 語法解析器(AST)。因此不支援跨多行的型別定義或匿名巢狀 struct 等複雜寫法,請將其視為快速生成草稿的工具。
ツールくん

閒話 ― 與「JSON 轉 Go 結構體」正好相反的思路

在用 Go 開發 Web API 時,響應結構通常由 struct 與 json 標籤組合定義。但當前端開發者或 QA 工程師想確認 API 的實際表現時,閱讀 Go 程式碼並在腦中逐個把欄位型別換算成 JSON 是一件既費時又容易出錯的工作。

本工具正好與姊妹工具「JSON 轉 Go 結構體」方向相反:只需貼上 Go 的 struct 定義,就能根據 json 標籤生成對應的鍵名,並按欄位型別填入佔位值,生成可直接用於 Postman 示例或前端模擬資料的 JSON。

不過本工具並非真正的 Go 編譯器,而是基於正規表示式與逐行分析的簡易解析器。它能處理簡單的欄位定義,以及在同一輸入中一併貼上的巢狀 struct,但對於匿名巢狀 struct 或跨多行的型別定義等複雜寫法可能無法正確解析。請將其作為草稿參考,並結合實際 Go 原始碼確認最終結構。