柔軟なブール値の JSON アンマーシャリング
ブール値を 0/1 と false/true の両方として一貫性なく表す JSON データ ソースを扱う場合、標準のエンコーディング/json パッケージでは、解析に十分な柔軟性が提供されない可能性があります。この問題に対処するには、カスタム UnmarshalJSON メソッドを実装して、受け入れられるブール形式を拡張できます。
この例では、2 つのブール フィールド (AsBoolean と AlwaysBoolean) を持つ MyType という名前の構造体を定義します。対応する JSON 入力には、それぞれのフィールドの値「true」と「1」が含まれています。
0 と false の両方をブール値としてアンマーシャルするには、新しい型 ConvertibleBoolean を作成し、その UnmarshalJSON メソッドを実装します。メソッド内では、入力データを文字列として検査し、次の条件に基づいて対応するブール値を決定します。
UnmarshalJSON メソッドをカスタマイズすることで、デフォルトの JSON アンマーシャリング動作を拡張し、入力 JSON データ内の非標準のブール表現に対応できます。このアプローチにより、JSON 入力を予想されるブール値にアンマーシャリングし、それに応じて MyType 構造体を設定することができます。
以上がGo で JSON から柔軟なブール値 (0/1 および true/false) をアンマーシャルするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。