Go 中使用 GORM 解析 JSON 字符串到结构体
在 Go 中,可以使用 encoding/json 包来将 JSON 字符串解析为结构体。下面是一个简单的例子:
假设我们有以下 JSON 字符串:
{
'name': 'John',
'age': 30,
'address': {
'street': '123 Main St',
'city': 'Anytown',
'state': 'CA',
'zip': '12345'
}
}
我们可以定义一个结构体来表示这个 JSON 数据:
type Person struct {
Name string `json:'name' `
Age int `json:'age' `
Address struct {
Street string `json:'street' `
City string `json:'city' `
State string `json:'state' `
Zip string `json:'zip' `
} `json:'address' `
}
然后,我们可以使用 json.Unmarshal() 函数将 JSON 字符串解析为这个结构体:
jsonStr := `{
'name': 'John',
'age': 30,
'address': {
'street': '123 Main St',
'city': 'Anytown',
'state': 'CA',
'zip': '12345'
}
}`
var person Person
err := json.Unmarshal([]byte(jsonStr), &person)
if err != nil {
panic(err)
}
fmt.Println(person.Name) // Output: John
fmt.Println(person.Age) // Output: 30
fmt.Println(person.Address.Street) // Output: 123 Main St
fmt.Println(person.Address.City) // Output: Anytown
fmt.Println(person.Address.State) // Output: CA
fmt.Println(person.Address.Zip) // Output: 12345
注意,结构体中的字段必须使用 json 标签来指定 JSON 对应的字段名称。在上面的例子中,我们使用了 json:'name' 来指定 Name 字段对应的 JSON 字段名为 name。同样地,我们也为 Age 和 Address 字段指定了对应的 JSON 字段名。
原文地址: https://www.cveoy.top/t/topic/lKe8 著作权归作者所有。请勿转载和采集!