在golang中,将数据转化为json数组并进行传输或存储是常见的操作。golang内置了json库,可以轻松地将go中的数据类型转换成json格式,如下所示:

import (
"encoding/json"
"fmt"
)
type Person struct {
Name string
Age  int
}
func main() {
p1 := Person{Name: "Alice", Age: 25}
p2 := Person{Name: "Bob", Age: 35}
people := []Person{p1, p2}
// 将结构体切片转换为json字节数组
jsonData, err := json.Marshal(people)
if err != nil {
fmt.Println(err)
}
fmt.Println(string(jsonData))
// 输出:[{"Name":"Alice","Age":25},{"Name":"Bob","Age":35}]
}

在上面的代码中,我们定义了一个Person类型的结构体,并创建了两个Person实例。我们将这两个实例添加到一个Person切片中,并调用json.Marshal()函数将切片转换为json字节数组。如果转换成功,我们最后将json字节数组转换为字符串并输出。

如果你需要将json数组转换为go对象,可以使用json.Unmarshal()函数。

type Person struct {
Name string
Age  int
}
func main() {
jsonData := `[{"Name":"Alice","Age":25},{"Name":"Bob","Age":35}]`
var people []Person
// 将json字节数组转换为结构体切片
err := json.Unmarshal([]byte(jsonData), &people)
if err != nil {
fmt.Println(err)
}
fmt.Println(people)
// 输出:[{Alice 25} {Bob 35}]
}

在上面的代码中,我们定义了一个Person类型的结构体,并将json数据存储在一个字符串变量中。我们创建了一个空的Person切片,并调用json.Unmarshal()函数将json字节数组转换为Person切片。如果转换成功,我们最后将打印出Person切片。

这就是使用golang将数据转换为json数组和json数组转换为go对象的简单方法。