0 と False の両方を含む JSON からのブール値のアンマーシャリング
JSON データを解析するには、誤解を避けるためにデータ型を慎重に検討する必要があります。サービスがブール値を 0 と false (および 1 と true) として交換する場合、適切なアンマーシャリングを実現することが重要になります。
組み込みのエンコーディング/json パッケージは、カスタム タイプを使用してアンマーシャリング プロセスをカスタマイズする方法を提供します。 。カスタム タイプを定義することで、カスタムのアンマーシャリング ロジックを実装して、目的の変換を処理できます。
カスタム アンマーシャリング タイプ
json.Unmarshaler インターフェイスを実装するカスタム タイプを作成します。 。この型は、JSON データを目的のブール形式に変換します。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
この例では、ConvertibleBoolean は、json.Unmarshaler インターフェイスを実装するカスタム ブール型です。これは、デフォルトの JSON アンマーシャリング プロセスをオーバーライドし、受信データを文字列としてチェックします。 true または false (またはそれに相当する数値 1 と 0) を表す文字列を識別すると、それに応じて ConvertibleBoolean 値を設定します。それ以外の場合は、エラーが返されます。
カスタム タイプの使用
カスタム アンマーシャリング タイプを作成したので、それを構造体で使用して、予期される JSON 構造を定義します。
1 2 3 4 |
|
例アンマーシャリング
カスタム タイプを適切に配置すると、JSON データを MyType 構造体にアンマーシャリングし、0 と false (および 1 と true) の両方をブール値に正しく変換できます。
1 2 3 4 5 6 7 8 9 |
|
このサンプルの JSON データには「true」と「1」が含まれており、デフォルトのアンマーシャラーでは異なるタイプとして扱われます。ただし、ConvertibleBoolean を使用すると、両方の値が true として正しくアンマーシャリングされます。
以上が\'0\' と \'false\' (および \'1\' と \'true\') を使用して JSON からのブール アンマーシャリングを処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。