Go での JSON 解析デフォルトのカスタマイズ
Go で JSON を解析する場合、存在しないフィールドにデフォルト値を割り当てると、データ操作が強化される可能性があります。ここでは、encoding/json パッケージを使用するか、外部 Go ライブラリを利用する方法を示します。
encoding/json を使用する
encoding/json パッケージは、簡単な解決策を提供します。 。空の構造体を json.Unmarshal に渡す代わりに、デフォルト値で初期化できます。例:
type Test struct { A string "a" B string "b" C string } example := []byte(`{"A": "1", "C": "3"}`) out := Test{} err := json.Unmarshal(example, &out) if err != nil { panic(err) } fmt.Printf("%+v", out)
外部ライブラリの利用
エンコーディング/json パッケージがニーズを完全に満たさない場合は、拡張された JSON を提供する外部 Go ライブラリがあります。解析機能。よく使用されるオプションの 1 つは go-json ライブラリです。これを使用すると、struct タグを使用して欠落しているフィールドのデフォルト値を指定できます。
import ( "encoding/json" "github.com/go-json" ) type Test struct { A string `json:"a,omitempty"` B string `json:"b,omitempty"` C string `json:"c,omitempty"` } example := []byte(`{"A": "1", "C": "3"}`) out := Test{ DefaultA: "a", DefaultB: "b", DefaultC: "c", } err := json.Unmarshal(example, &out) if err != nil { panic(err) } fmt.Printf("%+v", out)
以上がGo で欠落している JSON フィールドのデフォルト値を設定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。