配列と文字列を使用した一貫性のない JSON フィールドのアンマーシャリング
フィールドが次のようなデータに矛盾している場合、JSON のアンマーシャリングは困難になることがあります。文字列または文字列の配列のいずれか。このシナリオに対処するために、さまざまな戦略を採用できます。
RawMessage を使用したさまざまなデータのキャプチャ
さまざまな型のフィールドについては、json.RawMessage を使用して、解析されていないデータをキャプチャできます。データ。これにより、トップレベル JSON をアンマーシャリングした後にフィールドを操作できるようになります。
「-」タグを使用してフィールドを非表示にする
自動デコードから「DisplayName」フィールドを非表示にするには、構造体定義で「-」タグを使用できます。これにより、トップレベルのアンマーシャリング中にアプリケーションがそのフィールドに値を割り当てることができなくなります。
フィールド タイプの決定と設定
トップレベルの JSON がデコードされると、 RawDisplayName フィールドの型を調べて、それが文字列であるか配列であるかを判断できます。文字列の場合は、文字列スライスにアンマーシャリングします。配列の場合、元の質問に従って値を「&&」で結合します。
Custom Unmarshal Interface
さまざまなタイプの複数のフィールドがあるシナリオの場合、 json.Unmarshaler インターフェイスを実装するカスタム タイプで解析ロジックをカプセル化すると有益な場合があります。これにより、データ変換プロセスを一元的に制御できます。
実装例
指定された JSON を処理する実装例を次に示します。
これらの手法を使用することで、さまざまなタイプのフィールドを含む JSON を効果的にアンマーシャリングし、アプリケーションがデータを処理できるようにすることができます。正しく。
以上が一貫性のない JSON フィールドを処理する方法: 文字列と文字列配列?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。