go语言怎么解析一个包含不同数据类型的json数组
时间: 2023-03-29 11:01:30 浏览: 130
使用Go语言解析动态JSON格式的方法
可以使用 Go 语言内置的 json 包来解析包含不同数据类型的 json 数组。具体步骤如下:
1. 定义一个结构体,用于存储 json 数组中的数据。结构体的字段需要与 json 数组中的键名一一对应,并且需要使用 `json` 标签来指定对应的键名。
2. 使用 `json.Unmarshal()` 函数将 json 数组解析为结构体实例。该函数的第一个参数为 json 数组的字节数组,第二个参数为结构体实例的指针。
以下是一个示例代码:
```go
package main
import (
"encoding/json"
"fmt"
)
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
}
func main() {
jsonStr := `[{"name":"Alice","age":20},{"name":"Bob","age":25},{"name":"Charlie","age":30,"isMarried":true}]`
var people []Person
err := json.Unmarshal([]byte(jsonStr), &people)
if err != nil {
panic(err)
}
fmt.Println(people)
}
```
在上面的代码中,我们定义了一个 `Person` 结构体,用于存储 json 数组中的数据。然后,我们使用 `json.Unmarshal()` 函数将 json 数组解析为 `[]Person` 类型的切片。最后,我们打印出解析后的结果。
注意,上面的 json 数组中,第三个元素包含了一个额外的键值对 `{"isMarried":true}`,但是我们并没有在 `Person` 结构体中定义对应的字段。在解析时,这个键值对会被忽略。
阅读全文