golang字符串转json映射到结构体
时间: 2023-12-17 14:04:27 浏览: 30
可以使用标准库中的`json`包来实现将字符串转换为JSON,并映射到结构体中。下面是一个示例代码:
```go
package main
import (
"encoding/json"
"fmt"
)
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
Address struct {
City string `json:"city"`
Country string `json:"country"`
} `json:"address"`
}
func main() {
jsonStr := `{
"name": "Alice",
"age": 30,
"address": {
"city": "New York",
"country": "USA"
}
}`
var p Person
if err := json.Unmarshal([]byte(jsonStr), &p); err != nil {
fmt.Println("Error:", err)
return
}
fmt.Printf("Name: %s\n", p.Name)
fmt.Printf("Age: %d\n", p.Age)
fmt.Printf("City: %s\n", p.Address.City)
fmt.Printf("Country: %s\n", p.Address.Country)
}
```
在这个示例中,我们定义了一个`Person`结构体,其中包含名字、年龄和地址信息。然后,我们将一个JSON字符串解码成这个结构体。解码过程中,我们需要使用`json.Unmarshal`函数,并传入JSON字符串和目标结构体的指针。最后,我们可以访问解码后的结构体中的字段。