首頁 >後端開發 >Golang >如何在 Go 中實作區分大小寫的 JSON 解組?

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

Barbara Streisand
Barbara Streisand原創
2024-11-15 11:17:02366瀏覽

How Can I Achieve Case-Sensitive JSON Unmarshaling in Go?

區分大小寫的JSON Unmarshal:技術探究

在JSON 處理領域,json.Unmarshal 函數是將資料解析為GoJSON 資料解析為Go 結構資料。然而,在解組過程中處理不區分大小寫的匹配時,會出現一個常見的困境。此問題源於以下事實: json.Unmarshal 預設接受 JSON 物件鍵和結構體欄位名稱之間的精確匹配和不區分大小寫的匹配。

考慮以下場景:您收到一個包含兩個標籤的 JSON 物件、“e”和“E”,並且您希望將物件解組到僅具有“e”標記的結構中。面對這項挑戰,您可能會想採取簡單的解決方法,例如使用「e」和「E」標籤定義一個結構體,然後忽略「E」標籤。

雖然這種方法可能暫時緩解這個問題,它會引入程式碼冗餘並會降低程式的可讀性。幸運的是,對於這種區分大小寫的困境,有一個更優雅的解決方案。

深入研究json 套件的官方文件後,您會發現以下段落:

「將JSON 解組為struct,Unmarshal 將傳入的物件鍵與Marshal 使用的鍵(結構體字段名稱或其標籤)進行匹配,更喜歡精確匹配,但也接受不區分大小寫的匹配。 ,並且缺乏禁用不區分大小寫行為的機制。

總而言之,Go 中的標準 json 函式庫目前不支援區分大小寫的 JSON 解組。如果您遇到此要求,您必須採用替代方法或實施您自己的自訂解決方案。

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

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