登录
首页 >  Golang >  Go问答

Golang 相当于 Python json.dumps 和 json.loads

来源:stackoverflow

时间:2024-04-09 23:54:28 215浏览 收藏

学习Golang要努力,但是不要急!今天的这篇文章《Golang 相当于 Python json.dumps 和 json.loads》将会介绍到等等知识点,如果你想深入学习Golang,可以关注我!我会持续更新相关文章的,希望对大家都能有所帮助!

问题内容

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

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

我希望能够将其解组为如下结构:

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

我知道通常解组需要字节,但我试图将我当前得到的内容转换为结构化的内容。 有什么建议吗?


解决方案


问题是 encoding/json 包接受格式良好的 json,在这种情况下,您拥有的初始 json 已转义引号,首先您必须取消转义它们,一种方法是使用 the strconv.Unquote function,这是一个示例片段:

package main

import (
    "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)
}

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>