首頁 >後端開發 >Golang >為什麼編組 json.RawMessage 值會產生 Base64 編碼的字串而不是原始 JSON?

為什麼編組 json.RawMessage 值會產生 Base64 編碼的字串而不是原始 JSON?

DDD
DDD原創
2024-11-12 04:54:01804瀏覽

Why does marshalling a json.RawMessage value result in a base64-encoded string instead of raw JSON?

編組json.RawMessage 返回Base64 編碼的字符串

問題:

編組時json.RawMessage值,為什麼輸出是base64編碼的字串而不是原始JSON?

背景:

下面的代碼演示了這個問題:

預期輸出:

{"foo":"bar"}

實際輸出:

"eyJmb28iOiJiYXIifQ=="

答案🎜> >

json.RawMessage 類型的MarshalJSON 方法只會傳回底層位元組切片。但是,要讓 json.RawMessage 正常運作,傳遞給 json.Marshal 的值必須是指標。

解決方案:

要解決此問題,請更新程式碼如下:

以上是為什麼編組 json.RawMessage 值會產生 Base64 編碼的字串而不是原始 JSON?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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