Command Palette

Search for a command to run...

JS

JSON 走向結構

將 JSON 轉換為帶有 json 標籤的 Go 結構定義。巢狀物件變成內聯結構,物件數組被合併,欄位名稱遵循 Go 約定。運行客戶端。

什麼是 JSON to Go 結構轉換器?

JSON to Go 結構轉換器將 JSON 文件轉換為描述它的 Go 類型聲明,因此您可以使用編碼/json 解組相同的數據,而不是手動輸入結構。每個 JSON 物件都變成 Go 結構,每個欄位都帶有 json:「key」標籤,將其映射回原始名稱,並且從值推斷標量類型:JSON 字串變成字串,整數變成 int,十進制變成 float64, true 和 false 變成 bool,null 變成介面{}。貼上有效負載,然後返回準備編譯類型區塊。

它的存在是因為從真實的 API 回應編寫 Go 結構很乏味,而且很容易犯微妙的錯誤。必須匯出欄位名稱並遵循 Go 約定,因此 id 變成 ID,user_url 變成 UserURL,而 json 標籤必須保留精確的原始金鑰或 json。Unmarshal 無聲地跳過該欄位。嵌套物件需要自己的結構,並且物件數組需要一個涵蓋任何元素所擁有的每個金鑰的單一結構。在深度嵌套回應中執行此操作是錯誤蔓延的地方。轉換器一致地應用這些規則:嵌套物件變成內聯結構,並且物件數組被合併,因此僅出現在某些元素中的金鑰仍然存在於生成的類型中。

一切都在您的瀏覽器中運行。您貼上過的 JSON 會在您自己的裝置上以 JavaScript 進行解析和分析,因此不會上傳、記錄或存儲任何內容,並且一旦頁面加載,該工具就會繼續與斷開連接的網路一起工作。當有效負載是私有 API 回應或包含您不想發送到任何地方的金鑰和值時,這一點很重要。您可以重新命名根類型,當您需要更寬的類型時將整數切換到 int64,當您希望從編碼輸出中省略零值時,可以為每個標籤新增省略。

一個簡短的範例顯示了 go JSON 到結構映射。貼上{"order_id":1042,"總計":19.5,"項目":[{"sku":"A1","qty":2},{"sku":"B2","qty":1,"gift_note":"生日快樂"}]},將順序鍵入為根類型並按一下轉換。您將獲得帶有 OrderID int、Total float64 和 Items []struct holding Sku string、Qty int 和 GiftNote string 的 Order struct。即使只有第二個項目有 GiftNote,GiftNote 也存在,因為 JSON to Go 結構轉換器將數組的每個元素合併到一個類型中。

如何使用 JSON to Go 結構轉換器?

  1. 貼上你的 json

    將 JSON 物件或陣列貼到輸入框中。如果您想在使用自己的資料之前查看產生的結構的形狀,請先載入範例。

  2. 命名根型

    輸入頂級結構的名稱,例如 User 或 ApiResponse。它被清理成有效的導出 Go 標識符,以便它按照寫入的方式進行編譯。

  3. 設定整數和標籤選項

    選擇整數 int 或 int64,如果要在將結構編碼回 JSON 時省略空字段,請開啟 omitempty。

  4. 轉換和複製

    按一下「轉換」建立結構定義,然後將其複製到 Go 檔案中。無效的 JSON 會報告並帶有精確的解析器訊息,以便您可以修復它。

主要特點

  • 正確的 json 標籤

    每個欄位都保留一個 json:「original_key」標籤,因此 json。Unmarshal 將資料映射回確切的 JSON 名稱,即使 Go 欄位被重新命名以遵循約定。

  • Go-convention 欄位名稱

    匯出金鑰並且常見首字母縮寫大寫,因此 id 變成 ID,user_url 變成 UserURL,html_body 變成 HTMLBody,符合 golint 期望。

  • 內聯嵌套結構

    嵌套的 JSON 物件會變成任何深度的內聯結構文字,因此整個形狀存在於一個聲明中,您可以貼上為單一區塊。

  • 合併的物件數組

    一系列物件產生一個結構,涵蓋任何元素擁有的每個鍵,並且鍵的衝突值類型回退到介面{}而不是失敗。

Frequently Asked Questions

JSON to Go 結構轉換器將 JSON 文件轉換為描述它的 Go 類型聲明。每個物件都變成一個結構,每個欄位都有一個 json:「key」標籤,並且推斷值類型,因此您可以使用編碼/json 解組相同的數據,而無需手動編寫結構。

Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!

json to gojson to go structgo json to structjson to golang structgo struct generatorjson to structconvert json to gogolang struct from jsonfree json to gono signup json to go