首頁  >  文章  >  後端開發  >  如何在 Go 中實作區分大小寫的 JSON Unmarshal?

如何在 Go 中實作區分大小寫的 JSON Unmarshal?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-09 07:43:02527瀏覽

How to Achieve Case-Sensitive JSON Unmarshal in Go?

Go 中區分大小寫的JSON Unmarshal

Go 中的json.Unmarshal 函數提供了一種將JSON 資料反序列化為結構體的方法。預設情況下,Unmarshal 在 JSON 鍵和結構體欄位名稱或標籤之間執行不區分大小寫的匹配。但是,在某些情況下,可能需要區分大小寫的匹配。

問題

假設您收到帶有「e」和「等標籤的 JSON 資料E」。您想要解組帶有標籤“e”的物件並忽略帶有“E”的物件。使用預設的不區分大小寫的匹配,Unmarshal 將接受兩個標籤並相應地解組結構。

解決方案

不幸的是,標準 json 庫當前不支援大小寫 - Unmarshal 的敏感匹配。根據官方文件:

To unmarshal JSON into a struct, Unmarshal matches incoming object keys to the keys used by Marshal (either the struct field name or its tag), preferring an exact match but also accepting a case-insensitive match.

因此,使用標準 json 函式庫無法停用不區分大小寫的符合。

以上是如何在 Go 中實作區分大小寫的 JSON Unmarshal?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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