JSON 配列を Go データ構造に解析する
配列を含む JSON データを扱う場合、適切な Go データ構造を選択するのが難しい場合があります。解析します。たとえば、ファイルにキーと値のペアの配列が保持されている場合、map[string]string を利用しようとすると、「配列を main.data 型の Go 値にアンマーシャリングできません。」
のようなエラーが発生する可能性があります。解決策は、JSON 構造を正確に識別することにあります。提供された例は配列のように見えますが、実際にはマップの配列です。ファイルは、map[string]string 構造と一致するように次のようにする必要があります:
{ "a":"1", "b":"2", "c":"3" }
マップの配列を Go 構造体に解析する方法を示す次のコード スニペットを考えてみましょう:
package main import ( "encoding/json" "fmt" "io/ioutil" "log" ) type mytype []map[string]string 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 ファイルを使用してこのコードを実行すると、データが目的の構造に正常に解析され、ファイル内のキーと値のペアにアクセスできるようになります。配列。
以上がマップの JSON 配列を Go 構造体に解析するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。