ホームページ > バックエンド開発 > Golang > Go で JSON から柔軟なブール値 (0/1 および true/false) をアンマーシャルするにはどうすればよいですか?

Go で JSON から柔軟なブール値 (0/1 および true/false) をアンマーシャルするにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-04 17:42:12
オリジナル
640 人が閲覧しました

How Can I Unmarshal Flexible Boolean Values (0/1 and true/false) from JSON in Go?

柔軟なブール値の JSON アンマーシャリング

ブール値を 0/1 と false/true の両方として一貫性なく表す JSON データ ソースを扱う場合、標準のエンコーディング/json パッケージでは、解析に十分な柔軟性が提供されない可能性があります。この問題に対処するには、カスタム UnmarshalJSON メソッドを実装して、受け入れられるブール形式を拡張できます。

この例では、2 つのブール フィールド (AsBoolean と AlwaysBoolean) を持つ MyType という名前の構造体を定義します。対応する JSON 入力には、それぞれのフィールドの値「true」と「1」が含まれています。

0 と false の両方をブール値としてアンマーシャルするには、新しい型 ConvertibleBoolean を作成し、その UnmarshalJSON メソッドを実装します。メソッド内では、入力データを文字列として検査し、次の条件に基づいて対応するブール値を決定します。

  • 文字列が「1」または「true」の場合、ブール値を設定します。
  • 文字列が「0」または「false」の場合、ブール値を false に設定します。
  • その他

UnmarshalJSON メソッドをカスタマイズすることで、デフォルトの JSON アンマーシャリング動作を拡張し、入力 JSON データ内の非標準のブール表現に対応できます。このアプローチにより、JSON 入力を予想されるブール値にアンマーシャリングし、それに応じて MyType 構造体を設定することができます。

以上がGo で JSON から柔軟なブール値 (0/1 および true/false) をアンマーシャルするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート