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

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

DDD
發布: 2024-11-12 04:54:01
原創
799 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板