在 Golang 中,將 JSON 資料解析為自訂資料結構非常簡單。考慮一個場景,其中JSON 檔案包含具有動態鍵的物件陣列:
[ {"a" : "1"}, {"b" : "2"}, {"c" : "3"} ]
嘗試將此JSON 解析為map[string]string 可能會導致錯誤:
import ( "encoding/json" "io/ioutil" "log" ) type data map[string]string func main() { c, _ := ioutil.ReadFile("test.json") dec := json.NewDecoder(bytes.NewReader(c)) var d data dec.Decode(&d) // error: cannot unmarshal array into Go value of type data }
為了解決這個問題並解析JSON 數組,自訂類型mytype定義為映射數組:
type mytype []map[string]string
透過定義資料將結構視為映射的切片,可以相應地解析JSON 數組:
import ( "encoding/json" "fmt" "io/ioutil" "log" ) func main() { var data mytype file, err := ioutil.ReadFile("test.json") if err != nil { log.Fatal(err) } err = json.Unmarshal(file, &data) if err != nil { log.Fatal(err) } fmt.Println(data) }
這種方法允許將具有動態鍵的JSON 陣列解析為Go 資料結構。
以上是如何將帶有動態鍵的 JSON 陣列解析為 Go 資料結構?的詳細內容。更多資訊請關注PHP中文網其他相關文章!