2012-01-19 19 views
0

IntentServiceを実装中です.RESTfulなWebサービスコールを実行してから、sendBroadcastを使用して結果をブロードキャストすることを計画しています。IntentService JSONからオブジェクトへの変換

WebサービスコールからJSONを受信しました。

JSON文字列を受け取った後、実際にテキストを解析して(GSONを使用して)オブジェクトに変換する必要があるかどうかわかりません。私はすべてのドメインオブジェクトをParcelableにして、ブロードキャストでオブジェクトを送信するか、JSONテキストを送信して、実際にオブジェクトが必要なときにそれらを変換する方が良いでしょうか?その他のアドバイスは?

ありがとうございました。

答えて

0

これは個人的な好みですが、私はJSON文字列とモデルオブジェクトの間で直列化および逆直列化する独自のクラスを作成しています。 ORMのようなツールを使用するのではなく、コードを書くのはちょっとした作業かもしれませんが、バグやキーやネストされた階層の更新には非常に適しています。

モデルオブジェクトごとに、Translatorクラスがあります。例えば、ThingとThingTranslator。このようにして、アクティビティ間で文字列を渡すことができます。私はシリアル化とデシリアライズを行うことができる単一の場所を持っていますので、何か間違っている場合や更新する必要がある場合(例えば、サービス変更オブジェクトスキーマなど)見るべき1つの場所。

+0

ありがとうございました。私は変換を行うべき場所、特にIntentServiceを使用するときにJSONをオブジェクトに解析する方法にはあまり興味がありません。オブジェクトをブロードキャストし、使用時点で変換するか、またはIntentSerice内で変換し、オブジェクト(または別のアプローチ)をブロードキャストする必要があります。 – Steve

+0

私はその質問を理解しているかどうかわかりません。もし私がParcelableに行ったり、私のオブジェクトを手作業でシリアル化/逆シリアル化したりするのであれば、私は後者と一緒に行きます。私が説明したようにそれを行う理由は、私が作成するすべての単一のモデルクラスにクラス内のパーシングロジックを持たせたくないからです。私はSRPとコードシンプルさを強く支持しているので、私のモデルオブジェクトはモデルにすぎません。シリアライゼーション、検証などはすべて外部で行われます。 ThingにはThingの目的を表すプロパティとメソッドがあり、ThingTranslatorとThingValidatorとThingProviderは特定のタスクを実行します。 – Rich

関連する問題