在使用golang處理json格式數據的時候,若是我們不清楚所處理的json數據的具體結構,該怎么辦呢?
這時候我們可以使用golang提供的map[string]interface{}
結構體,將未知的json數據解析為這個結構體。示例代碼如下:
package main
import (
"encoding/json"
"fmt"
)
func main() {
jsonStr := `{"name": "Tom", "age": 18, "address": {"city": "Shanghai", "district": "Minhang"}}`
var data map[string]interface{}
err := json.Unmarshal([]byte(jsonStr), &data)
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println(data["name"].(string))
fmt.Println(data["age"].(float64))
fmt.Println(data["address"].(map[string]interface{})["city"].(string))
fmt.Println(data["address"].(map[string]interface{})["district"].(string))
}
在這個示例代碼中,我們通過將未知的json數據解析為map[string]interface{}
結構體,來方便地獲取其中的值。需要注意的是,使用這種方式來獲取值時,需要使用類型斷言,以確保值的類型正確。