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

go json解析 不固定

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

Go語言(Golang)是一種強類型、高效、可靠的編程語言,由谷歌公司開發,常被用于構建網絡服務和分布式系統。在Golang中,JSON是一種常用的數據格式。在這篇文章中,我們將了解如何解析不固定的JSON。

在Golang中,使用json.Unmarshal函數可以將JSON字符串解析成Go語言的數據結構。但是對于不固定的JSON,我們該如何解析呢?不固定的JSON是指每個元素的鍵(key)都不相同的JSON數據。

一個示例的不固定JSON如下所示:

{ "person1": { "name": "Alice", "age": 20 }, "person2": { "name": "Bob", "age": 30 } }

這個JSON數據包含兩個person對象,每個對象都有不同的鍵。為了解析這個JSON,我們需要先定義一個Go結構體來存儲數據。一個可能的結構體如下所示:

type Person struct {
Name string `json:"name"`
Age  int    `json:"age"`
}

有了這個結構體,我們還需要定義一個包含所有person對象的結構體:

type People struct {
Persons map[string]Person `json:",inline"`
}

注意到我們使用map[string]Person來存儲所有的person對象。這樣我們就可以使用json.Unmarshal函數解析JSON了:

func main() {
jsonStr := `{ "person1": { "name": "Alice", "age": 20 }, "person2": { "name": "Bob", "age": 30 } }`
var people People
err := json.Unmarshal([]byte(jsonStr), &people)
if err != nil {
panic(err)
}
for key, person := range people.Persons {
fmt.Println(key, person.Name, person.Age)
}
}

在這個示例程序中,我們首先定義了一個JSON字符串,然后解析出People結構體。我們還用了一個循環語句輸出了每個person對象的鍵(key)、名字(name)和年齡(age)。

總之,解析不固定JSON可以使用map來存儲所有的對象。我們只需要定義一個帶有map的結構體即可。然后使用json.Unmarshal函數解析JSON字符串,就可以得到我們想要的數據結構了。