Golang是一種支持動(dòng)態(tài)化編程的編程語言,當(dāng)我們需要處理Json格式的數(shù)據(jù)時(shí),經(jīng)常需要根據(jù)動(dòng)態(tài)key值來解析Json字符串,這時(shí),Golang的Json動(dòng)態(tài)key功能非常有用。
package main import ( "encoding/json" "fmt" ) func main() { var data map[string]json.RawMessage raw := []byte(`{"key1":{"name":"John","age":30},"key2":{"name":"Mike","age":40}}`) err := json.Unmarshal(raw, &data) if err != nil { panic(err) } for k, v := range data { var person map[string]interface{} if err := json.Unmarshal(v, &person); err != nil { //動(dòng)態(tài)key解析Json字符串 panic(err) } fmt.Printf("key:%s, name:%s, age:%d", k, person["name"], person["age"]) } }
上述代碼中,我們定義了一個(gè)Json字符串,其中包含了2個(gè)對(duì)象,每個(gè)對(duì)象有不同的key值。我們通過解析Json字符串,動(dòng)態(tài)生成key值,并且取出每個(gè)對(duì)象中的name和age值。
通過Golang的Json動(dòng)態(tài)key功能,可以方便地解析Json字符串,并準(zhǔn)確地獲取相應(yīng)的值,為我們的開發(fā)工作提供了很大的便利。