首頁 > 後端開發 > Golang > 如何將帶有動態鍵的 JSON 陣列解析為 Go 資料結構?

如何將帶有動態鍵的 JSON 陣列解析為 Go 資料結構?

Linda Hamilton
發布: 2024-12-07 07:07:19
原創
921 人瀏覽過

How to Parse JSON Arrays with Dynamic Keys into Go Data Structures?

將 JSON 陣列解析為 Go 資料結構

在 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板