Golang 等价于 Python json.dumps 和 json.loads

这是一个非常奇怪的情况,但我需要将字符串化的 json 转换为可以解组的有效内容:

"{\"hello\": \"hi\"}"

我希望能够将其解组为这样的结构:

type mystruct struct {
    Hello string `json:"hello,string"`
    }

我通常知道解组需要字节,但我试图将我目前得到的东西转换成结构化的东西。有什么建议么?


宝慕林4294392
浏览 357回答 1
1回答

斯蒂芬大帝

问题是该encoding/json包接受格式正确的 JSON,在这种情况下,您已经转义了引号的初始 JSON,首先您必须取消转义它们,一种方法是使用function strconv.Unquote,这是一个示例片段:package mainimport (    "encoding/json"    "fmt"    "strconv")type mystruct struct {    Hello string `json:"hello,omitempty"`}func main() {    var rawJSON []byte = []byte(`"{\"hello\": \"hi\"}"`)    s, _ := strconv.Unquote(string(rawJSON))    var val mystruct    if err := json.Unmarshal([]byte(s), &val); err != nil {        // handle error    }    fmt.Println(s)    fmt.Println(err)    fmt.Println(val.Hello)}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go