Domanda

Ho la seguente risposta JSON da un URL:

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
                )

        )

)

Ed ecco come sto facendo il saggio:

                      Gson json=new Gson();
                      try{
                          Driver driver=json.fromJson(response,Driver.class);
                          Log.i("json",driver.profilePic);
                      }catch(JsonParseException e){
                          Log.i("error","JsonParseException");
                      }

Quando eseguo il codice, ricevo questo errore: Errore/AndroidRuntime (823): java.lang.runtimeexception: costruttore no-args per la classe com.project.driver.driver $ Post non esiste. Registra un InstanceCreator con GSON per questo tipo per risolvere questo problema.

Ho problemi con la definizione di un autista adatto. Java per lo squilibrio. Quando ometto il campo "Last5Comments", tutto funziona bene, è solo il bit "Last5Comments", ho problemi con ...

Ecco 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="";
    }
}

Qualsiasi aiuto con la definizione di un pilota adatto. Java è molto apprezzato.

Grazie in anticipo,

È stato utile?

Soluzione

Sono riuscito a risolvere questo problema guardando:

http://sites.google.com/site/gson/gson-user-guide#toc --nested-classes --including-inner-clas

(Sezione su "classi nidificate (comprese le classi interne)")

Tutto quello che dovevo fare era rendere statico l'oggetto post.

public static class Post{
        public String comment="";
        public String fromUname="";
        public String profilePic="";
        public String time="";
        public String id="";
    }
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top