我有一个包含字符串作为[]字节字段的结构,我想将其编码为JSON.但是,生成的JSON包含切片内容的非预期字符串表示形式.这是我所说的一个例子:
package main
import (
"fmt"
"encoding/json"
)
type Msg struct {
Content []byte
}
func main() {
helloStr := "Hello"
helloSlc := []byte(helloStr)
fmt.Println(helloStr, helloSlc)
obj := Msg{helloSlc}
json, _ := json.Marshal(obj)
fmt.Println(string(json))
}
Run Code Online (Sandbox Code Playgroud)
这会产生以下输出:
Hello [72 101 108 108 111]
{"Content":"SGVsbG8="}
Run Code Online (Sandbox Code Playgroud)
执行[]字节编码字符串的json.Marshal()方法是什么类型的转换.如何使用我的字符串{"Content":"Hello"}的原始内容生成JSON?
我遇到了同样的事情,即使这是一个相当老的问题并且已经回答了,还有另一种选择。
如果您使用json.RawMessage(其内部是 []byte)作为类型,而不是按[]byte预期编组工作为 Json 字符串。
| 归档时间: |
|
| 查看次数: |
6461 次 |
| 最近记录: |