使用 JSON 時,可能會出現在解組過程中需要區分大小寫處理的情況。然而,Go 中的標準 JSON 函式庫會優先考慮不區分大小寫的匹配,這可能會導致意外的行為。
根據官方文檔,在解組期間,傳入的 JSON 鍵是與結構字段名稱或標籤進行比較。該庫更喜歡精確匹配,但也容忍不區分大小寫的匹配。例如,如果您收到包含“e”和“E”等鍵的 JSON,並且希望僅解組“e”變體,這可能會導致衝突。
遺憾的是,標準 JSON 庫目前沒有提供一種簡單的機制來禁用不區分大小寫的解組。 https://golang.org/pkg/encoding/json/#Unmarshal 上的文件明確指出:
「Unmarshal 將傳入物件鍵與 Marshal使用的鍵(結構體字段名稱或其標籤)進行匹配,更喜歡完全匹配,但也接受不區分大小寫的匹配。不提供開箱即用的解決方案,一種可能的解決方法是透過擴充encoding/json 套件來建立自訂JSON 解碼器。此解碼器可以實現字段級區分大小寫的解組機制,忽略具有不同大小寫的標籤。
以上是如何在 Go 中實作區分大小寫的 JSON 解組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!