在Go語言中,json.RawMessage代表了一段未經解析的JSON數據。它可以用于在未知JSON格式或動態JSON格式中解碼嵌套的數據。
// 示例JSON數據 var jsonStr = `{ "name": "Tom", "age": 20, "address": { "city": "Beijing", "province": "Beijing" } }` // 定義結構體 type Person struct { Name string `json:"name"` Age int `json:"age"` Address json.RawMessage `json:"address"` } // 解析JSON數據 var p Person err := json.Unmarshal([]byte(jsonStr), &p) if err != nil { log.Fatal(err) } // 解析嵌套的JSON數據 var address map[string]string err = json.Unmarshal(p.Address, &address) if err != nil { log.Fatal(err) } // 輸出結果 fmt.Println("Name:", p.Name) fmt.Println("Age:", p.Age) fmt.Println("City:", address["city"]) fmt.Println("Province:", address["province"])
在上面的示例中,我們定義了一個Person結構體,其中包含了一個json.RawMessage類型的Address字段,它代表了未經解析的JSON數據。在解析JSON數據時,我們可以將Address字段解析為map[string]string,從而得到嵌套的JSON數據。通過json.RawMessage,我們可以很方便地處理未知JSON格式或動態JSON格式的數據。
上一篇python 貝葉斯圖形
下一篇python 教程網盤