首页 > 后端开发 > Golang > 正文

golang string 转json

WBOY
发布: 2023-05-13 10:04:07
原创
3310 人浏览过

在golang中,将string类型转换成json对象可以使用标准库中的json包。

首先,我们可以使用json.Marshal()函数将golang中的对象转换成json格式的字符串。例如:

type Person struct {
    Name string `json:"name"`
    Age  int    `json:"age"`
}

p := Person{Name: "Tom", Age: 29}
jsonStr, err := json.Marshal(p)
if err != nil {
    fmt.Println("json.Marshal failed:", err)
}

fmt.Println(string(jsonStr))
登录后复制

以上代码将会输出以下结果:

{"name":"Tom","age":29}
登录后复制

接下来,我们可以使用json.Unmarshal()函数将json字符串转换成golang中的对象。例如:

jsonStr := `{"name":"Tom","age":29}`

var p Person
err := json.Unmarshal([]byte(jsonStr), &p)
if err != nil {
    fmt.Println("json.Unmarshal failed:", err)
}

fmt.Println(p.Name, p.Age)
登录后复制

以上代码将会输出以下结果:

Tom 29
登录后复制

需要注意的是,在进行json解析时,使用的是[]byte类型的参数,因此需要通过强制类型转换将string类型转换成[]byte类型。

此外,也可以直接使用json.NewDecoder()函数将json格式的字符串解析成json对象,例如:

jsonStr := `{"name":"Tom","age":29}`

var data interface{}
decoder := json.NewDecoder(strings.NewReader(jsonStr))
err := decoder.Decode(&data)
if err != nil {
    fmt.Println("json.Unmarshal failed:", err)
}

fmt.Println(data)
登录后复制

以上代码将会输出以下结果:

map[name:Tom age:29]
登录后复制

这样,我们就可以使用golang中的标准库json包将string类型转换成json对象了。

以上是golang string 转json的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板