如何在 golang 中将结构打印为带有转义字符的纯字符串?

我正在尝试将 Golang 结构打印为带有转义字符的字符串,但无法做到这一点。


我想像这样打印我的结构:


"{\"data\":\"MyName\",\"value\":\"Ashutosh\"}"


这是我试过的。


package main


import (

    "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\"}"


温温酱
浏览 347回答 1
1回答

长风秋雁

要引用任何字符串,您可以使用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)这些都是输出(在Go Playground上试试):MyStruct: "{\"data\":\"Name\",\"value\":\"Ashutosh\"}"
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go