J'ai cette réponse venant du serveur. Je veux analyser cela en utilisant des classes pojo. J'ai créé des classes pojo ayant des méthodes setter et getter qui contiennent des valeurs. Mais la logique que j'utilise ne fonctionne pas correctement. Pendant que j'imprimais des valeurs, elle ne renvoyait pas les valeurs exactement.Comment analyser JSON ayant différentes clés dans chaque élément de tableau en utilisant des classes POJO dans android
Réponse:
{
"code":200,
"status":"ok",
"message":"Promotions feed.",
"data":{
"feed":[
{
"id":0,
"businessId":0,
"photoUrl":"https:\/\/d1e6yi6s3cx2ur.cloudfront.net\/videos\/0\/8b84c9c1-50ed-4e93-9785-797bbf2be667.png",
"videoUrl":"https:\/\/d1e6yi6s3cx2ur.cloudfront.net\/videos\/0\/_464b2fb6-ede6-403f-b6ae-1666c9504337.mov",
"isNew":true,
"type":"news"
},
{
"id":198,
"specialType":"limited",
"name":"Big Data Shoes!",
"description":"Get them now while you can. They're dangerous!",
"start":"2017-06-04 14:59:01Z",
"end":"2018-01-26 19:00:00Z",
"limitedAmount":30,
"countInfo":{
"views":70,
"likes":0,
"liked":false,
"type":"count_info"
},
"type":"special"
},
{
"id":"1616636",
"partnerId":3,
"uuid":"57dacc36-abac-4bb3-89a4-f1981130b206",
"type":"partner_offer"
}
]
}
}
FeedPojo.java
public class FeedPojo {
private static String id;
private static String businessId;
private static String photoUrl;
private static String videoUrl;
public static String getId() {
return id;
}
public static void setId(String id) {
FeedPojo.id = id;
}
public static String getPartnerId() {
return partnerId;
}
public static void setPartnerId(String partnerId) {
FeedPojo.partnerId = partnerId;
}
}
MainActivity.java
FeedPojo.setType(promoJsonObject.getString("type"));
Log.d(TAG, "TypeFeed:" + FeedPojo.getType());
Log.e(TAG, "Type:" + promoJsonObject.getString("type"));
if (promoJsonObject.getString("type") == "news") {
FeedPojo.setId(promoJsonObject.getString("id"));
FeedPojo.setBusinessName(promoJsonObject.getString("businessName"));
FeedPojo.setBusinessLogoUrl(promoJsonObject.getString("businessLogoUrl"));
FeedPojo.setText(promoJsonObject.getString("text"));
Log.d(TAG,"Id"+FeedPojo.getId());
Log.d(TAG,"Businessname"+FeedPojo.getBusinessName());
}
if (FeedPojo.getType() == "special") {
FeedPojo.setId(promoJsonObject.getString("id"));
FeedPojo.setType(promoJsonObject.getString("type"));
FeedPojo.setName(promoJsonObject.getString("name"));
FeedPojo.setDescription(promoJsonObject.getString("description"));
FeedPojo.setStart(promoJsonObject.getString("start"));
FeedPojo.setEnd(promoJsonObject.getString("end"));
}
Votre FeedPojo ne semble pas avoir toutes les des champs. – benjosantony
Je viens de publier seulement quelques champs juste pour rendre facile à comprendre .. Mais j'ai déclaré tous dans mon code source. @benjosantony – user1918566