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

golang 解析復(fù)雜json

林國瑞2年前9瀏覽0評論

Golang是一種非常流行的編程語言,它在解析JSON方面非常出色。雖然它可以輕松地解析簡單的JSON數(shù)據(jù),但處理復(fù)雜的JSON數(shù)據(jù)需要更多的技巧。

以下是我們?nèi)绾卧贕olang中解析復(fù)雜的JSON數(shù)據(jù)的方法:

package main
import (
"encoding/json"
"fmt"
)
func main() {
jsonString := `{
"name": "Tom",
"age": 30,
"emails": ["tom@example.com", "test@example.com"],
"address": [
{
"city": "New York",
"state": "NY"
},
{
"city": "San Francisco",
"state": "CA"
}
],
"phone": {
"home": "123-456-7890",
"work": "234-567-8901"
}
}`
var data map[string]interface{}
if err := json.Unmarshal([]byte(jsonString), &data); err != nil {
panic(err)
}
fmt.Println(data["name"].(string))        //"Tom"
fmt.Println(data["age"].(float64))        //30
fmt.Println(data["emails"].([]interface{})[0].(string))     //"tom@example.com"
fmt.Println(data["address"].([]interface{})[0].(map[string]interface{})["city"].(string))   //"New York"
fmt.Println(data["phone"].(map[string]interface{})["work"].(string))       //"234-567-8901"
}

在此代碼中,我們使用“map[string]interface{}”類型定義了一個變量“data”,以便在解析JSON數(shù)據(jù)時存儲它。接下來,我們使用“json.Unmarshal()”函數(shù)將JSON字符串解析到變量“data”中。此外,代碼使用了類型斷言將map中的字符串映射到原始類型。

可以看到,在Golang中解析復(fù)雜的JSON數(shù)據(jù)很容易。您只需要使用“map[string]interface{}”類型來存儲JSON數(shù)據(jù)并使用類型斷言來映射字符串即可。