Golang 是一种高效、强类型、编译型语言,它内置有对 Json 数据的支持,可以很方便地处理 Json 数据。
通常情况下,使用 Golang 处理 Json 数据需要先将 Json 数据解析为内存中的一个结构体,然后对该结构体进行操作。使用 Golang 处理 Json 数据通常有两个步骤:1、将 Json 数据解析成一个结构体;2、从结构体中读取或写入数据。
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
Address Address `json:"address"`
}
type Address struct {
City string `json:"city"`
District string `json:"district"`
Street string `json:"street"`
}
func main() {
jsonStr := `{"name":"Tom", "age":18, "address": {"city":"Beijing", "district":"Haidian", "street":"Zhongguancun"}}`
var p Person
err := json.Unmarshal([]byte(jsonStr), &p)
if err != nil {
panic(err)
}
fmt.Printf("Name: %v, Age: %v, City: %v\n", p.Name, p.Age, p.Address.City)
p.Age = 20
p.Address.City = "Shanghai"
newJsonStr, err := json.Marshal(p)
if err != nil {
panic(err)
}
fmt.Println(string(newJsonStr))
}如上述代码示例所示,我们定义了一个 Person 结构体和一个 Address 结构体,分别表示人员信息和所居住的地址信息。我们可以使用 json.Unmarshal() 将 Json 数据解析为 Person 结构体,然后访问该结构体的字段值;同时我们也可以修改该结构体的字段值并使用 json.Marshal() 将其转换为 Json 数据。
综上所述,Golang 对 Json 数据的支持十分便捷强大,可以满足大多数 Json 数据处理的需求。