問題タブ [json-annotation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
324 参照

json - flutter json_serializable 欠落ファイル

2 つの異なる .g.dart ファイルを作成したというエラーが表示される理由がわかりません

しかし、このファイルの場合、欠落している部分が表示されます。[警告] json_serializable:lib/Model/Supermodel.dart の json_serializable: "part 'Supermodel.g.dart';" がありません。

0 投票する
1 に答える
431 参照

flutter - ChopperClient フラッターに複数のコンバーターを追加する

さまざまな応答セットに対して json-annotation を使用して、さまざまな .g.dart クラスを作成しています。現在、リクエストを作成し、レスポンスをモデル クラスにマッピングするために Chopper Client を使用しているときは、コンバーターを作成しています。ただし、チョッパー クライアントに割り当てることができるコンバータは 1 つだけです。私が達成しようとしているのは、get_it パッケージを使用してチョッパー クライアントを初期化することです。異なるリクエストを行う際に、異なるコンバーターをチョッパークライアントに割り当てるにはどうすればよいですか。 これは、クラスの初期化に get_it パッケージが使用される基本クラスです。

base.dart

この ChopperService クラスから Get リクエストを作成し、HomeModelConverter を使用して応答を HomeModelResponse にマッピングします。この HomeModelConverter は、上記のチョッパー クライアント オブジェクトに割り当てられます。

home_api_service.dart

これは、HomeModelResponse 固有のコンバーター クラスです。decodeJson 関数内では、HomeModelResponse にデコードすることを明示的に言及しています。

home_model_converter.dart

これは、受信応答が自動的にマップされる HomeModelResponse です。

home_model_response.dart

上記のコードは home_api_service に対して正常に機能しており、適切な応答が得られています。 ここで、AddApiService などの別のサービスを作成したいと考えています。これには別のコンバーターがあります。チョッパー クライアントでコンバーターを動的に変更する方法。現在、HomeModelConverter は初期化時にハードコーディングされて割り当てられています。すべてのコンバーターに対して複数の ChopperClient を作成したくありません。ここで立ち往生。または、汎用コンバーターを作成するオプション

このアプローチが問題ないかどうか、またはフラッターに従うためのより良いアプローチがあるかどうかを誰かが提案できる場合。