Attendu BEGIN_ARRAY mais a été BEGIN_OBJECT à la ligne 1 de la colonne 35
Je fraîchement commencé avec gson et je suis en train d'analyser une chaîne JSON qui commence comme un objet, et toujours le même message d'erreur
JSON
{
"code": 200,
"data": {
"messages": [
{
"emailSender": "[email protected]",
"countryCode": null,
"emailSenderReply": null,
"rejectedReason": null,
"messageReplySenderMessageDeleted": null,
"lastNameReceiver": null,
"wpMessagesRatingReplyId": null,
"wpMessagesRatingRating": null,
"countryMemberId": 143,
"phoneSenderReply": null,
"messageReplyReceiverMessageDeleted": null,
"readStatus": "unread",
"phoneReceiverReply": null,
"membersSenderUid": "m8692031",
"wpMessagesRequestTitle": "Fazzzzzz",
"title": "Fazzzzzz",
"countryTitle": null,
"emailReceiver": null,
"firstNameReceiverReply": null,
"id": 1288,
"messageReplyId": null,
"membersReceiverUid": "m1000002",
"time": "2014-12-28 14:32:09",
"wpMessagesRequestCategoryId": 4,
"lastNameReceiverReply": null,
"lastNameSender": "dsad",
"phoneReceiver": null,
"status": "unanswered",
"messageReplyReceiver": null,
"messageReplyStatus": null,
"memberReceiverRole": "admin",
"isConsultant": 1,
"roleReplyReceiver": null,
"wpMesssagesRequestCategoriesSystemName": "orders",
"lastNameSenderReply": null,
"memberSenderRole": "member",
"wpMesssagesRequestCategoriesName": "Orders",
"requestMessage": 1101,
"wpMessagesRequestPriority": "middle",
"messageReplyTime": null,
"message": "OLOLO",
"wpMessagesRequestCountryId": null,
"sender": 4481,
"firstNameReceiver": null,
"messageReplyMessage": null,
"firstNameSender": "asdas",
"firstNameSenderReply": null,
"emailReceiverReply": null,
"roleReplySender": null,
"messageReplySender": null,
"wpMessagesRequestProductId": null,
"receiver": 4364,
"isMessageForwarded": 0,
"wpMessagesRequestStatus": "not-taken",
"phoneSender": "2(342)-4-23-42",
"wpMessagesRequestMessage": "OLOLO"
}
]
}
}
et je continuer à courir dans l'erreur:
Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 3 column 12
L'erreur dans mon journal de points de cette ligne:
Gson gson = new GsonBuilder().create();
Main main=gson.fromJson(a, Main.class);
Voici mon pojo
static class Main{
int code;
boolean error;
List<Data> data;
}
static class Data{
Enteties messages;
}
static class Enteties{
String msg_title;
String msg_time;
int msg_id;
String msg_status;
@Override
public String toString(){
return msg_title+" "+msg_time+" "+msg_id+" "+msg_status;
}
}
OriginalL'auteur user4425973 | 2015-01-12
Vous devez vous connecter pour publier un commentaire.
Votre classe Principale dispose de Données sous forme de liste. Votre JSON a comme un objet. Les types doivent correspondre. Si vous vous attendez à de 1 les données en main, ne pas utiliser de liste. Si vous vous attendez 1 ou plus de données, faire le code qui génère l'envoi de données vers le bas d'un tableau (même si ce tableau a seulement 1 objet).
merci monsieur,votre réponse m'a beaucoup aidé ,les valeurs null, parce que de pojo noms de mauvaise configuration
OriginalL'auteur Gabe Sechan
votre Pojo devrait ressembler à quelque chose comme ceci
votre classe d'Entité:
@SerializedName est une annotation indiquant que ce membre doit être sérialisé en JSON avec la valeur de nom comme nom de champ. Pour plus de détails vérifiez ici
Votre classe de Données:
Et enfin la classe Principale:
Voici le code d'analyse:
OriginalL'auteur Prasad Khode