1

Jackson を使用して、Android アプリの JSON を解析しています。また、REST サーバーでも使用するつもりなので、クライアントとサーバーの間でモデルを共有します。

ドメインオブジェクト「Friend」をモデル化する POJO を作成しました。クライアントがhttps://www.myserver.com/api/1/friend/1234を取得したら、おそらく 1 つまたは 2 つのフィールドが欠落している ID 1234 のシリアル化された Friend を返したいと思います。

ただし、クライアントがhttps://www.myserver.com/api/1/friend/を取得すると、すべての友人オブジェクトを返したいのですが、検索結果により適したデータが少ない (たとえば、名、姓だけ)およびプロフィール画像。ただし、友人のリスト、生年月日などは除きます)。

アクセス方法に応じて、同じ基本モデルをさまざまな方法で表現できるようにするには、ここでどのパターンに従う必要がありますか?

4

2 に答える 2

1

継承は、 と組み合わせてオプションにすることができます@JsonIgnoreProperties

クラスFriendを作成し、それを拡張して、シリアル化するプロパティを制限できます。

@JsonIgnoreProperties({ "friends", "dateOfBirth" })
class RestrictedFriend extends Friend {

}
于 2013-05-21T15:31:49.620 に答える
0

継承を使用するかどうかを確認してください。全員と共有したいフィールドを持つ基本クラスと、より制限されたデータを持つサブクラスを用意します。公開情報用と公開 + セキュア情報用の 2 つの JSON API を用意し、呼び出された API に基づいて基本クラスまたはサブクラス オブジェクトをシリアル化します。

于 2013-05-21T12:11:48.243 に答える