我正在尝试将 Golang 结构打印为带有转义字符的字符串,但无法做到这一点。我想像这样打印我的结构:"{\"data\":\"MyName\",\"value\":\"Ashutosh\"}"这是我试过的。package mainimport ( "encoding/json" "fmt")type Resp struct { Data string `json:"data"` Value string `json:"value"`}func main() { var data Resp data.Data = "Name" data.Value = "Ashutosh" r, _ := json.Marshal(data) fmt.Println("MyStruct: ", string(r))}但它是这样打印的。{"data":"Name","value":"Ashutosh"}有人可以帮我获得以下输出吗?:"{\"data\":\"MyName\",\"value\":\"Ashutosh\"}"
1 回答

长风秋雁
TA贡献1757条经验 获得超7个赞
要引用任何字符串,您可以使用strconv.Quote()
:
fmt.Println("MyStruct:", strconv.Quote(string(r)))
fmt
包中还有一个用于引用字符串的动词%q
::
字符串和字节切片(与这些动词等效处理):
%q a double-quoted string safely escaped with Go syntax
所以你也可以这样打印:
fmt.Printf("MyStruct: %q", string(r))
因为这也适用于字节片,你甚至不需要转换string
:
fmt.Printf("MyStruct: %q", r)
MyStruct: "{\"data\":\"Name\",\"value\":\"Ashutosh\"}"
- 1 回答
- 0 关注
- 344 浏览
添加回答
举报
0/150
提交
取消