这篇“go语言string转结构体如何实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“go语言string转结构体如何实现”文章吧。
在 Go 语言中,可以使用标准库中的 encoding/json 包将 JSON 格式的字符串转换为结构体。
假设有以下 JSON 字符串:
{
"name": "鸡哥",
"age": 28,
"gender": "男",
"hobby": {
"sing": "唱",
"jump": "跳",
"rap": "rap",
"ball":"篮球"
}
}
可以定义一个对应的结构体类型:
type hobby struct {
Sing string `json:"sing"`
Jump string `json:"jump"`
Rap string `json:"rap"`
Hobby hobby `json:"hobby"`
}
type Person struct {
Name string `json:"name"`
Age string `json:"age"`
Gender string `json:"gender`
Hobby hobby `json:"hobby"`
}
然后使用 json.Unmarshal() 函数将 JSON 字符串解析为该结构体类型的实例:
package main
import (
"encoding/json"
"fmt"
)
func main() {
jsonStr := `{
"name": "鸡哥",
"age": 28,
"gender": "男",
"hobby": {
"sing": "唱",
"jump": "跳",
"rap": "rap",
"ball":"篮球"
}
}`
var person Person
if err := json.Unmarshal([]byte(jsonStr), &person); err != nil {
fmt.Println("解析 JSON 失败:", err)
return
}
fmt.Printf("爱好:%s
唱:%d
跳:%s
爱好:%v
", person.Sing, person.Jump, person.Rap, person.Hobby)
}
在这个例子中,我们将 JSON 字符串 jsonStr 解析为类型为 Person 的结构体实例 person。&person 表示将 person 的地址传递给 json.Unmarshal() 函数,让它将解析的结果填充到 person 中。如果解析失败,会返回一个非空的错误对象。
版权声明:除特别声明外,本站所有文章皆是本站原创,转载请以超链接形式注明出处!