色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

go 解析 json樹

錢諍諍2年前8瀏覽0評論

在go語言中,解析json樹相對比較簡單。首先我們需要導入“encoding/json”包,然后定義一個結構體來存儲我們要解析的json數據。

type Node struct {
Name  string  `json:"name"`
Value float64 `json:"value"`
Type  string  `json:"type"`
Child []*Node `json:"child"`
}

上面的結構體中包含了4個字段,分別代表節點名稱、節點值、節點類型和子節點。其中“Child”是一個切片類型的指針,用于存儲子節點。接下來我們可以使用“Unmarshal”函數來解析json數據。

data := []byte(`{
"name": "root",
"value": 100,
"type": "root",
"child": [
{
"name": "node1",
"value": 50,
"type": "sub",
"child": []
},
{
"name": "node2",
"value": 20,
"type": "sub",
"child": [
{
"name": "subnode1",
"value": 10,
"type": "subsub",
"child": []
}
]
}
]
}`)
var root Node
err := json.Unmarshal(data, &root)
if err != nil {
log.Fatal(err)
}

通過“Unmarshal”函數,我們可以把json數據解析為一個Node類型的結構體。在解析完成后,我們可以遍歷這個結構體來獲取節點信息。

func traverse(node *Node) {
fmt.Printf("Name: %s, Value: %f\n", node.Name, node.Value)
for _, child := range node.Child {
traverse(child)
}
}
traverse(&root)

在“traverse”函數中,我們使用遞歸的方式來遍歷節點信息。對于每個節點,我們打印出它的名稱和值,并且繼續對它的子節點進行遍歷。

綜上所述,go語言中解析json樹的過程相對比較簡單,僅需定義一個與json數據結構對應的結構體,然后使用“Unmarshal”函數將json數據解析為該結構體。在解析完成后,我們可以遍歷整個結構體,獲取需要的節點信息。