在Go語言中,有時(shí)我們需要將JSON這種數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)化為map數(shù)組,以便于后續(xù)的操作。下面就來介紹一下怎么做。
首先,我們需要導(dǎo)入encoding/json包:
import "encoding/json"
接下來,我們定義一個(gè)結(jié)構(gòu)體,用于存儲JSON數(shù)據(jù)的鍵值對:
type MyData struct { Key string `json:"key"` Value string `json:"value"` }
然后,我們可以使用json.Unmarshal函數(shù)將JSON數(shù)據(jù)轉(zhuǎn)化為MyData類型的數(shù)組:
jsonStr := ` [ {"key": "name", "value": "John"}, {"key": "age", "value": "30"}, {"key": "city", "value": "New York"} ] ` var myData []MyData err := json.Unmarshal([]byte(jsonStr), &myData)
接下來,我們就可以將myData數(shù)組轉(zhuǎn)化為map數(shù)組:
myMap := make(map[string]string) for _, data := range myData { myMap[data.Key] = data.Value }
最后,我們可以打印一下myMap:
fmt.Println(myMap)
完整代碼如下:
package main import ( "fmt" "encoding/json" ) type MyData struct { Key string `json:"key"` Value string `json:"value"` } func main() { jsonStr := ` [ {"key": "name", "value": "John"}, {"key": "age", "value": "30"}, {"key": "city", "value": "New York"} ] ` var myData []MyData err := json.Unmarshal([]byte(jsonStr), &myData) if err != nil { fmt.Println(err) return } myMap := make(map[string]string) for _, data := range myData { myMap[data.Key] = data.Value } fmt.Println(myMap) }
下一篇html怎么插入代碼