ホームページ  >  記事  >  バックエンド開発  >  すべての情報を保持しながら、すべての要素をマッピングせずに json を構造体にアンマーシャリングする方法

すべての情報を保持しながら、すべての要素をマッピングせずに json を構造体にアンマーシャリングする方法

王林
王林転載
2024-02-05 21:36:04416ブラウズ

如何将 json 解组为结构体而不映射所有元素,同时保留所有信息

#質問内容

キューから JSON オブジェクトを受け取ります。別のキューに送信する前に、オブジェクトの一部を処理して更新したいと考えています。

ご意見があれば

リーリー

新しい出力を追加して同様のメッセージを送信する前に、

onetwo を取得して情報を計算したいと考えています リーリー

データをより適切に処理できるようにするために、JSON を同様の構造にアンマーシャリングしたいと考えています

リーリー

ただし、フィールドの多くはこのアプリケーションに無関係であり、他のフィールドは変更される可能性があるため、すべてのフィールドをマップする必要はありません。

私が試したこと

すべてのフィールドを

json.RawMessage にマッピングしてみました リーリー

ただし、構造をマーシャリングする場合、

ExtraFields に含まれるフィールドは含まれません。 リーリー

また、完全なメッセージを構造体に保存するカスタム アンマーシャリングを作成してみました。有用なメッセージは 1 つの要素に、その他の情報は別のフィールドに格納されます。

リーリー

しかし、これは非常に混乱しているので、よりクリーンな解決策を期待しています。

これを行う方法はありますか、それとも構造体にアンマーシャリングせずに生の

map[string] インターフェースを使用するだけの唯一のオプションですか?{}


正解


カスタム アンマーシャラーを作成できます。例:

https://www.php.cn/link/a73d9b34d6f7c322fa3e34c633b1297d リーリー

以上がすべての情報を保持しながら、すべての要素をマッピングせずに json を構造体にアンマーシャリングする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。