私はアンドロイドでRetrofitに取り組んでいます。これは初めてのことです。私はapiを正しく実装し、jsonの応答を得ました。 私の応答で私はステータス、データ、メッセージを持っています。ここでデータクラスは配列であり、配列内の項目(id、title、url、image)にアクセスするのが難しいと思っています。どうすればこれらのアイテムを扱うことができますか?改造からのデータ取得json array
イメージURLをイメージビューに設定する必要があります。
これは私が配列の数を見ることができていますので、ここで改造
ApiInterface apiInterface = AppController.GetRetrofitObject().create(ApiInterface.class);
Call<SocialData> call = apiInterface.socialContent(accessToken,tokenType,client,expiry,uid);
call.enqueue(new Callback<SocialData>() {
@Override
public void onResponse(Call<SocialData> call, Response<SocialData> response) {
Data[] data=response.body().getData();
i=data.length;
String count= String.valueOf(i);
Toast.makeText(context,count,Toast.LENGTH_LONG).show();
}
@Override
public void onFailure(Call<SocialData> call, Throwable t) {
}
});
を呼び出して、私のJavaクラスです。
これは私のjsonレスポンスです。image urlをimageviewに設定する必要があります。
{
"status": 200,
"data": [
{
"id": 1,
"title": "Six WhatsApp Features You May Not Know About ",
"url": "http://gadgets.ndtv.com/apps/features/six-whatsapp-features-you-may-not-know-about-1658812?pfrom=home-indepth",
"image": {
"url": "/uploads/social_medium/image/1/Whatsapp-for-PC.jpg"
},
"bypass": false
},
{
"id": 2,
"title": "How to Delete Your Snapchat Account ",
"url": "http://gadgets.ndtv.com/apps/features/how-to-delete-your-snapchat-account-1658799?pfrom=home-indepth",
"image": {
"url": "/uploads/social_medium/image/2/snapchat_code_picjumbo_1486964243543.jpg"
},
"bypass": false
},
{
"id": 3,
"title": "Jadeja, Ishant wrap up India's 208-run win",
"url": "http://www.espncricinfo.com/india-v-bangladesh-2016-17/content/story/1082146.html",
"image": {
"url": "/uploads/social_medium/image/3/259024.jpg"
},
"bypass": false
},
{
"id": 4,
"title": "10 Facts On the Disproportionate Case Against VK Sasikala",
"url": "http://www.ndtv.com/india-news/10-facts-on-the-disproportionate-case-against-vk-sasikala-1659078",
"image": {
"url": null
},
"bypass": false
}
],
"message": {
"success": "Success"
}
}
私はpojoクラスを次のように取得しました。
SocialData.java
public class SocialData {
private Message message;
private String status;
private Data[] data;
public Message getMessage()
{
return message;
}
public void setMessage (Message message)
{
this.message = message;
}
public String getStatus()
{
return status;
}
public void setStatus (String status)
{
this.status = status;
}
public Data[] getData()
{
return data;
}
public void setData (Data[] data)
{
this.data = data;
}
@Override
public String toString()
{
return "ClassPojo [message = "+message+", status = "+status+", data = "+data+"]";
}
}
Message.java
public class Message {
private String success;
public String getSuccess()
{
return success;
}
public void setSuccess (String success)
{
this.success = success;
}
@Override
public String toString()
{
return "ClassPojo [success = "+success+"]";
}
}
Data.java
public class Data {
private String id;
private String title;
private String bypass;
private Image image;
private String url;
public String getId()
{
return id;
}
public void setId (String id)
{
this.id = id;
}
public String getTitle()
{
return title;
}
public void setTitle (String title)
{
this.title = title;
}
public String getBypass()
{
return bypass;
}
public void setBypass (String bypass)
{
this.bypass = bypass;
}
public Image getImage()
{
return image;
}
public void setImage (Image image)
{
this.image = image;
}
public String getUrl()
{
return url;
}
public void setUrl (String url)
{
this.url = url;
}
@Override
public String toString()
{
return "ClassPojo [id = "+id+", title = "+title+", bypass = "+bypass+", image = "+image+", url = "+url+"]";
}
}
Image.java
public class Image {
private String url;
public String getUrl()
{
return url;
}
public void setUrl (String url)
{
this.url = url;
}
@Override
public String toString()
{
return "ClassPojo [url = "+url+"]";
}
}
私は応答がうまくいきます。 http://www.jsonschema2pojo.org
とoyur JSON
セットソースタイプコピー:あなたは正しいクラスを取得しますJSON セット注釈スタイル:: GSON
をレトロフィットは、このサイトを使用するための正しいPOJOクラスを作成するには
あなたを助けることを願っていますFYI 'Expose'アノテーションは無意味です。また、変数名とjsonキーが同じであるため、 'SerializedName'アノテーションは必要ありません。変数** **はそのように宣言される必要はありません – akash93
私には新しい情報..ありがとう。最新の回答@ akash93 –
データムクラスの互換性のない型が表示されています。 –