Iは、イベントテーブルRetrofitとGsonを使用して外部キーのフィールドを取得するにはどうすればよいですか?
{
"name": "",
"time": null,
"event_pic_url": null,
"description": "",
"event_type": null,
"invite_only": false,
"free": false,
"age_restriction": false,
"ticket_price": null,
"venue": null
}
会場フィールドはこのフォーマットを有する会場のテーブルへの外部キーであるため、このJSONを出力するAPIエンドポイントを有します。
{
"name": "",
"rating": null,
"longitude": null,
"latitude": null
}
イベントのリストを取得した後、私は(私はすでにリストを取得し、アダプタを使用する方法を知ることができる)recyclerviewにそれらを取得したいと思いますが、私は会場の{IDを表示したくありません}、私は会場の{名前}を使いたいです。これはどうすればいいですか?それはネストされたJSONがどのように非直列化されるかに関連していますか?
public class Venue {
@SerializedName("name")
@Expose
private String name;
@SerializedName("rating")
@Expose
private Integer rating;
@SerializedName("longitude")
@Expose
private Double longitude;
@SerializedName("latitude")
@Expose
private Double latitude;
// ...
}
public class Event {
@SerializedName("name")
@Expose
private String name;
@SerializedName("time")
@Expose
private String time;
@SerializedName("event_pic_url")
@Expose
private String eventPicUrl;
@SerializedName("description")
@Expose
private String description;
@SerializedName("event_type")
@Expose
private String eventType;
@SerializedName("invite_only")
@Expose
private Boolean inviteOnly;
@SerializedName("free")
@Expose
private Boolean free;
@SerializedName("age_restriction")
@Expose
private Boolean ageRestriction;
@SerializedName("ticket_price")
@Expose
private Double ticketPrice;
@SerializedName("venue")
@Expose
private Venue venue;
// ...
}
ますのでご注意ください
{
"name": "",
"time": null,
"event_pic_url": null,
"description": "",
"event_type": null,
"invite_only": false,
"free": false,
"age_restriction": false,
"ticket_price": null,
"venue": {
"name": "",
"rating": null,
"longitude": null,
"latitude": null
}
}
あなたがGson
を使用しているので、あなたは以下のモデルを持っているしたいと思う:私は今、あなたのような何かを持っていることを前提としていますすべてのコメントの後
に依存私はいくつかの質問をして、私は助けることができるかもしれません。 GsonでRetrofitを使用していますか?あなたの残りのAPIは実際に上記のjsonsを返すのですか、それともシリアライゼーションの結果ですか?つまり、サーバーがネストされたjsonを送信しない可能性がありますか?あなたはすでにいくつかのモデルを持っていますか? – Fred
はいGsonで改造を行っています。残りのAPIは上記のようにjsonを返します。それは入れ子のjsonを送信しません。 – zacmwa
[OK]を、改造はあなたのために箱の中でこれを行うことはありません。 2つのオプションがあります。最初の呼び出しでいくつかのパラメータがサポートされているかどうかを調べるか、応答に '' venue'' jsonも含める必要があることをサーバに伝えるヘッダがあります。もしそうなら、助けがより簡単になります。そうでなければ、あなたはあなたがその会場のIDをどのように得ることができるかを知る必要があります。なぜなら、ほとんどの場合、別の休憩をとる必要があるからです。私は最初のアプローチで、最初の呼び出しの応答に ''会場 ''のボディを含めることができるかどうかを試してみようと思います。私に教えてください、私はあなたをさらに助けるでしょう。 – Fred