Analyser la Liste des objets JSON à l'aide de GSON
J'ai un objet JSON comme ceci:
{
"user1": {
"timeSpent": "20.533333333333335h",
"worklog": [
{
"date": "06/26/2013",
"issues": [
{
"issueCode": "COC-2",
"comment": "\ncccccc",
"timeSpent": "20.533333333333335h"
}
],
"dayTotal": "20.533333333333335h"
}
]
},
"admin": {
"timeSpent": "601.1h",
"worklog": [
{
"date": "06/25/2013",
"issues": [
{
"issueCode": "COC-1",
"comment": "",
"timeSpent": "113.1h"
}
],
"dayTotal": "113.1h"
},
{
"date": "06/26/2013",
"issues": [
{
"issueCode": "COC-1",
"comment": "",
"timeSpent": "8h"
},
{
"issueCode": "COC-2",
"comment": "",
"timeSpent": "480h"
}
],
"dayTotal": "488h"
}
]
}
}
et d'essayer de l'analyser avec Gson:
Gson gson = new Gson();
Book responseBean = gson.fromJson(jsonString, Book.class);
Mais le "responceBean' est toujours la valeur 'null'
Ici sont toutes les autres classes:
public class Book {
private List<User> user = new LinkedList<User>();
public List<User> getUser() {
return user;
}
public void setUser(List<User> user) {
this.user = user;
}
}
public class User {
private String timeSpent;
private List<WorkLog> worklogs = new LinkedList<WorkLog>();;
public List<WorkLog> getWorklogs() {
return worklogs;
}
public void setWorklogs(List<WorkLog> worklogs) {
this.worklogs = worklogs;
}
public String getTimeSpent() {
return timeSpent;
}
public void setTimeSpent(String timeSpent) {
this.timeSpent = timeSpent;
}
}
public class WorkLog{
private String date;
private String dayTotal;
private List<Issues> issues;
public String getDate(){
return this.date;
}
public void setDate(String date){
this.date = date;
}
public String getDayTotal(){
return this.dayTotal;
}
public void setDayTotal(String dayTotal){
this.dayTotal = dayTotal;
}
public List<Issues> getIssues(){
return this.issues;
}
public void setIssues(List<Issues> issues){
this.issues = issues;
}
}
public class Issues{
private String comment;
private String issueCode;
private String timeSpent;
public String getComment(){
return this.comment;
}
public void setComment(String comment){
this.comment = comment;
}
public String getIssueCode(){
return this.issueCode;
}
public void setIssueCode(String issueCode){
this.issueCode = issueCode;
}
public String getTimeSpent(){
return this.timeSpent;
}
public void setTimeSpent(String timeSpent){
this.timeSpent = timeSpent;
}
}
C'est ma dernière tentative. De toute façon je ne peut pas comprendre le droit chemin. Seront très reconnaissants pour toute aide.
Pas sûr, mais il semble que vous ayez une liste d'utilisateurs, pas un seul utilisateur. Comment voulez-vous que ce soit mappé?
double possible de Gson fromJson() renvoie l'objet avec la valeur null attrubutes
Merci Erik, j'ai modifié le post. Je thied avec une liste, n'a toujours pas de carte quoi que ce soit.
double possible de Gson fromJson() renvoie l'objet avec la valeur null attrubutes
Merci Erik, j'ai modifié le post. Je thied avec une liste, n'a toujours pas de carte quoi que ce soit.
OriginalL'auteur ITisha | 2013-06-26
Vous devez vous connecter pour publier un commentaire.
Votre JSON modèle ne correspond pas à votre modèle d'objet.
Vous avez besoin d'une couche intermédiaire pour combler l'écart: un TypeAdapter.
En outre, il n'existe pas de données concernant le nom de l'utilisateur.
Et enfin, il y a une non-concordance de nom: "worklog" JSON", worklogs" en Java.
Ici est une version fixe:
Java modèle:
De la plomberie pour combler l'écart:
Et une navette aller-retour:
Ont un coup d'oeil à mon tuto pour avoir une idée de ce qui est possible avec Gson: Java/JSON avec cartographie Gson
Profitez-en! 🙂
Heureux de vous aider! 🙂
OriginalL'auteur Pragmateek
J'ai eu quelques problème avant un mois. Aussi loin que je me souviens que c'était parce que, comme vous, j'ai oublié de faire "nouveau" pour les objets. Je veux dire qu'il devrait ressembler à:
Essayer cela et j'espère que cela va aider.
P. S.
Aussi comme Erik Pragt dit que vous avez éventail d'Utilisateurs, et pas seulement un seul. De sorte que vous aurez à faire 1 plus classe qui contient une Liste < >.
Essayez de changer la très premier et le dernier symboles { } [ ]. "[ ] ", raconte l'histoire de Gson que c'est un tableau.
Cela rendrait absolument pas de différence.
OriginalL'auteur Kamen Stoykov