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

golang解析深層json

方一強1年前10瀏覽0評論

Golang是一種很受歡迎的編程語言,它可作為構建可靠、高效及可擴展的應用程序的利器。當今的web開發離不開對JSON的處理,但JSON數據格式并不總是固定的,其中有時會有嵌套的參數。接下來,我們將討論如何使用Golang來解析深層Json數據。

package main
import (
"encoding/json"
"fmt"
)
func main() {
jsonData := []byte(`
{
"name": {
"first": "John",
"last": "Doe"
},
"age": 25,
"address": {
"street": "101 Main St.",
"city": "Anytown",
"state": "CA",
"zip": 12345
}
}
`)
var parsedData map[string]interface{}
err := json.Unmarshal(jsonData, &parsedData)
if err != nil {
panic(err)
}
name, ok := parsedData["name"].(map[string]interface{})
if ok {
fmt.Println("First Name:", name["first"])
fmt.Println("Last Name:", name["last"])
}
age, ok := parsedData["age"].(float64)
if ok {
fmt.Println("Age:", age)
}
address, ok := parsedData["address"].(map[string]interface{})
if ok {
fmt.Println("Street:", address["street"])
fmt.Println("City:", address["city"])
fmt.Println("State:", address["state"])
fmt.Println("Zip:", address["zip"])
}
}

以上代碼的效果應該是:

First Name: John
Last Name: Doe
Age: 25
Street: 101 Main St.
City: Anytown
State: CA
Zip: 12345

我們首先將JSON數據讓JSON解碼器處理,將結果保存在一個map[string]interface{}類型的變量中。 然后,使用類型斷言在這個map中查找每個鍵,這樣就能訪問嵌套對象內的值了。 但是,使用類型斷言來按索引訪問JSON結構深處的數據很繁瑣。 有一種更好的方法是使用gojsonq,它是一個用于解析JSON的輕量級庫。