首頁 >後端開發 >Golang >如何使用 Go 的 `encoding/json` 解組鍵名稱中帶有空格的 JSON?

如何使用 Go 的 `encoding/json` 解組鍵名稱中帶有空格的 JSON?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-25 07:57:10519瀏覽

How Can I Unmarshal JSON with Spaces in Key Names Using Go's `encoding/json`?

有空格的JSON 鍵名稱:解組成為可能

使用包含空格的複雜鍵反序列化JSON 資料通常會在解組過程中帶來挑戰。讓我們研究一下在 Go 中使用編碼/json 庫的具體範例。

問題:

考慮以下JSON 模式:

[
  {"Na me": "Platypus", "Order": "Monotremata"},
  {"Na me": "Quoll", "Order": "Dasyuromorphia"}
]

使用標準編碼/json 庫將此資料解組到以下Go 中結構結構:

type Animal struct {
    Name  string `json:"Na me"`
    Order string `json:"Order,omitempty"`
}

由於JSON鍵中的空格而導致“名稱”欄位為空。

原因:

空格JSON 鍵中的內容會混淆解組過程。庫嘗試將鍵“Na me”與 Animal 結構中的欄位相匹配,但沒有相應的欄位。

解決方案:

解決此問題,確保json 標籤中的struct field 標籤指定正確的鍵名稱,包括空格:

type Animal struct {
    Name  string `json:"Na me"`
    Order string `json:"Order,omitempty"`
}

使用此修改後的標籤,解組過程可以成功地將JSON鍵映射到正確的結構字段,從而產生預期的輸出:

[
  {Name:Platypus Order:Monotremata}
  {Name:Quoll Order:Dasyuromorphia}
]

以上是如何使用 Go 的 `encoding/json` 解組鍵名稱中帶有空格的 JSON?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn