ホームページ > バックエンド開発 > Golang > 一貫性のない JSON フィールドを処理する方法: 文字列と文字列配列?

一貫性のない JSON フィールドを処理する方法: 文字列と文字列配列?

DDD
リリース: 2024-12-07 22:31:12
オリジナル
650 人が閲覧しました

How to Handle Inconsistent JSON Fields: Strings vs. String Arrays?

配列と文字列を使用した一貫性のない JSON フィールドのアンマーシャリング

フィールドが次のようなデータに矛盾している場合、JSON のアンマーシャリングは困難になることがあります。文字列または文字列の配列のいずれか。このシナリオに対処するために、さまざまな戦略を採用できます。

RawMessage を使用したさまざまなデータのキャプチャ

さまざまな型のフィールドについては、json.RawMessage を使用して、解析されていないデータをキャプチャできます。データ。これにより、トップレベル JSON をアンマーシャリングした後にフィールドを操作できるようになります。

「-」タグを使用してフィールドを非表示にする

自動デコードから「DisplayName」フィールドを非表示にするには、構造体定義で「-」タグを使用できます。これにより、トップレベルのアンマーシャリング中にアプリケーションがそのフィールドに値を割り当てることができなくなります。

フィールド タイプの決定と設定

トップレベルの JSON がデコードされると、 RawDisplayName フィールドの型を調べて、それが文字列であるか配列であるかを判断できます。文字列の場合は、文字列スライスにアンマーシャリングします。配列の場合、元の質問に従って値を「&&」で結合します。

Custom Unmarshal Interface

さまざまなタイプの複数のフィールドがあるシナリオの場合、 json.Unmarshaler インターフェイスを実装するカスタム タイプで解析ロジックをカプセル化すると有益な場合があります。これにより、データ変換プロセスを一元的に制御できます。

実装例

指定された JSON を処理する実装例を次に示します。

これらの手法を使用することで、さまざまなタイプのフィールドを含む JSON を効果的にアンマーシャリングし、アプリケーションがデータを処理できるようにすることができます。正しく。

以上が一貫性のない JSON フィールドを処理する方法: 文字列と文字列配列?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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