Go で JSON を解析するときにデフォルト値を設定するにはどうすればよいですか?
Dec 10, 2024 pm 05:12 PMGo を使用した JSON 解析のデフォルト値の指定
Go で JSON オブジェクトを解析する場合、フィールドにデフォルト値を指定する必要がある場合があります。入力 JSON では提供されません。次のフィールドを持つ構造体タイプを考えてみましょう:
type Test struct { A string B string C string }
A、B、および C に必要なデフォルト値がそれぞれ "a"、"b"、および "c" であるとします。次の JSON を解析する場合:
{"A": "1", "C": 3}
予期される構造体は次のようになります:
Test{A: "1", B: "b", C: "3"}
encoding/json パッケージを使用する
ビルドされたGo の -in エンコーディング/json パッケージを使用すると、JSON 解析中にデフォルト値を指定できます。空の構造体を使用する代わりに、次のように必要なデフォルト値を含む構造体を提供します。
var example []byte = []byte(`{"A": "1", "C": "3"}`) out := Test{ A: "default a", B: "default b", // default for C will be "", the empty value for a string } err := json.Unmarshal(example, &out) // <- if err != nil { panic(err) } fmt.Printf("%+v", out)
json.Unmarshal(example, &out) を呼び出すことにより、JSON は out 構造体にアンマーシャリングされ、値が上書きされます。 JSONで指定します。ただし、JSON に存在しないフィールドのデフォルト値は変更されません。例を実行すると、以下が返されます:
{A:1 B:default b C:3}
その他の Go ライブラリ
エンコーディング/json パッケージが特定の要件を満たしていない場合は、同様の機能を提供する他の Go ライブラリがあります。次の点を考慮してください:
- [xjson](https://github.com/gobuffalo/x/blob/master/xjson/xjson.go) は、次の仕様を可能にするカスタマイズ可能な JSON パーサーを提供します。デフォルト値とその他のオプション。
- [eson](https://github.com/sean-/eson) は別の JSON パーサーですこれは、default() メソッドを通じてデフォルト値をサポートします。
以上がGo で JSON を解析するときにデフォルト値を設定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

人気の記事

人気の記事

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Go Language Packのインポート:アンダースコアとアンダースコアなしの違いは何ですか?

GOでテスト用のモックオブジェクトとスタブを書くにはどうすればよいですか?

トレースツールを使用して、GOアプリケーションの実行フローを理解するにはどうすればよいですか?

MySQLクエリ結果リストをGO言語のカスタム構造スライスに変換する方法は?

GOのジェネリックのカスタムタイプ制約を定義するにはどうすればよいですか?

GOの実際のパフォーマンスを正確に反映するベンチマークを作成するにはどうすればよいですか?
