欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

go解析多層json

錢多多2年前9瀏覽0評論

Go 語言是一種開發高性能網絡服務的編程語言。在開發過程中,我們常常遇到需要解析多層 JSON 的情況。在這篇文章中,我們將討論 Go 語言如何解析多層 JSON。

在 Go 語言中,內置有encoding/json的標準庫,可以用來解析 JSON。

import "encoding/json"
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
}
func main() {
jsonString := `{"name": "Tom", "age": 18}`
var person Person
json.Unmarshal([]byte(jsonString), &person)
fmt.Println(person.Name)
}

以上是解析單層 JSON 的示例代碼。如果我們遇到多層嵌套的 JSON,可以使用 map 類型來解析。

import "encoding/json"
func main() {
jsonString := `{
"name": {
"first": "Tom",
"last": "Smith"
},
"age": 18
}`
var person map[string]interface{}
json.Unmarshal([]byte(jsonString), &person)
fmt.Println(person["name"].(map[string]interface{})["first"])
}

在以上示例代碼中,我們定義了一個 map 類型的變量,并將它傳遞給了json.Unmarshal函數。通過斷言的方式可以訪問嵌套的元素。

當然,如果我們已經知道了 JSON 的結構,也可以使用結構體來解析。

import "encoding/json"
type Name struct {
First string `json:"first"`
Last string `json:"last"`
}
type Person struct {
Name Name `json:"name"`
Age int `json:"age"`
}
func main() {
jsonString := `{
"name": {
"first": "Tom",
"last": "Smith"
},
"age": 18
}`
var person Person
json.Unmarshal([]byte(jsonString), &person)
fmt.Println(person.Name.First)
}

以上代碼中,我們定義了兩個結構體,一個用來表示 name,另一個用來表示 Person。在解析 JSON 時,我們可以將 JSON 字符串解析為一個 Person 類型的變量。

以上就是使用 Go 解析多層 JSON 的方法。