在Go 中將[]byte 解碼為字串
在Go 中,當將[]byte 切片編組為JSON 字串時,執行的轉換透過json.Marshal() 方法將位元組切片編碼為base64 編碼的字串。如文件中所示:
Array and slice values encode as JSON arrays, except that []byte encodes as a base64-encoded string, and a nil slice encodes as the null JSON object.
執行此轉換是為了彌補 JSON 中原始位元組的本機表示的缺乏。 Base64 編碼確保位元組切片作為有效的 JSON 字串進行傳輸。
克服編碼
使用 [] 的原始內容產生 JSON 字串位元組字段,資料必須在封送之前轉換為字串。這可以使用string() 函數來實現:
<code class="go"> helloStr := "Hello" helloSlc := []byte(helloStr) obj := Msg{string(helloSlc)} json, _ := json.Marshal(obj) fmt.Println(string(json))</code>
這將產生所需的輸出:
{"Content":"Hello"}
這種方法確保JSON 字串包含字串的原始內容,而不是其base64 編碼表示。
以上是如何在 Go JSON 中將 []byte 解碼為字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!