在 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中文网其他相关文章!