在Go语言中,读取JSON格式的数据可以使用标准库中的“encoding/json”包。该包提供了Marshal和Unmarshal两个函数,可以实现从JSON格式数据与Go类型之间的相互转换。
下面是一个示例代码,演示如何读取JSON数据:
package main
import (
"encoding/json"
"fmt"
"log"
)
type User struct {
ID int `json:"id"`
Name string `json:"name"`
Age int `json:"age"`
}
func main() {
jsonString := `{"id":1,"name":"John","age":30}`
var user User
if err := json.Unmarshal([]byte(jsonString), &user); err != nil {
log.Fatal(err)
}
fmt.Println(user.ID, user.Name, user.Age)
}在这个例子中,我们定义了一个结构体User,表示一个用户对象。我们使用“json”标签为结构体中的字段指定名称。然后,我们将一个JSON字符串传递给json.Unmarshal方法,并将结果存储在user变量中。如果解析失败,则会打印出错误信息;否则,我们将通过访问User结构体中的字段来打印出解析后的数据。
需要注意的是,如果JSON的结构与定义的结构体不匹配,或者JSON中的字段值类型与结构体中的字段类型不匹配,则会导致解析失败。