J'ai la réponse JSON suivante à partir d'une url:JSON désérialisation utilisant GSON
stdClass Object
(
[uname] => Eamorr
[phoneNumber] => 082732938293
[fname] => Steve
[lname] => Hearst
[sex] => M
[roofSignNumber] => 230948
[vehicleReg] => 07D2892
[vehicleMake] => Toyota
[vehicleModel] => Avensis
[vehicleNumPassengers] => 4
[profilePic] => -1
[online] => 1
[status] =>
[picList] => Array
(
)
[lat] =>
[lng] =>
[reputation] => 0.63
[numPagesComments] => 1
[last5comments] => Array
(
[0] => stdClass Object
(
[comment] => hello5
[fromUname] => Eamorr
[profilePic] => -1
[time] => 1290254763
[id] => 23628mr28018onm647z2
)
)
)
Et voici comment je fais l'analyse syntaxique:
Gson json=new Gson();
try{
Driver driver=json.fromJson(response,Driver.class);
Log.i("json",driver.profilePic);
}catch(JsonParseException e){
Log.i("error","JsonParseException");
}
Quand je lance le code, je reçois ce erreur: ERROR/AndroidRuntime (823): java.lang.RuntimeException: constructeur No-args pour la classe com.project.driver.Driver $ Post n'existe pas. Enregistrez un InstanceCreator avec Gson pour ce type pour résoudre ce problème.
J'ai des problèmes avec la définition d'un Driver.java approprié pour l'analyse. Quand j'omettez le champ 'last5comments de, tout fonctionne bien, il est juste le bit « last5comments » Je vais avoir des problèmes avec ...
Voici Driver.java:
public class Driver {
public String uname="";
public String phoneNumber="";
public String fname="";
public String lname="";
public String sex="";
public String roofSignNumber="";
public String vehicleReg="";
public String vehicleMake="";
public String vehicleModel="";
public String vehicleNumPassengers="";
public String profilePic="";
public String online="";
public String status="";
public String[] picList;
public String lat="";
public String lng="";
public String reputation="";
public String numPagesComments="";
//having problems below this line
public Post[] last5comments;
public class Post{
public String comment="";
public String fromUname="";
public String profilePic="";
public String time="";
public String id="";
}
}
Toute aide à définir un Driver.java approprié est très apprécié.
Merci à l'avance,
Correct. Ou en faire une classe de premier niveau en la déplaçant dans un fichier séparé (sans statique dans ce cas). –