2016-05-09 14 views
0

, So, hier ist meine JSON (vom Server)von JSON Wechsel zu Gson/Android

{ 
    "error": true, 
    "ResultCode": 1, 
} 

ich diesen Code wurde mit den Informationen zu erhalten:

JSONObject object = new JSONObject(response); 
if(!object.getBoolean("error")) Log.e("TEST", "Error is false"); 
else Log.e("TEST", "Error is true"); 

Jetzt Ich wechsle GSON, aber mir ist aufgefallen, dass es nichts gibt wie "getboolean" oder "getInt". Wie kann ich meine Werte/Daten bekommen?

+0

wollen Sie json mit Gson analysieren? – USKMobility

+0

was ist s problem mit dem aktuellen code? –

+0

Gson kann Java-Klasse von Ihrem JSON generieren. Also, wenn Sie neue Gson(). Von Json ..; Sie erhalten die entsprechende Java-Klasse für Ihre JSON-Antwort. –

Antwort

0

Wenn Sie Ihre JSON-Antwort mit GSON analysieren möchten. Erstellen Sie eine Modell- oder POJO-Klasse, die der JSON-Antwort entspricht. Zum Beispiel Ihre Json Antwort und entsprechende POJO

class Response { 
     @SerializedName("error") 
     boolean error; 

     @SerializedName("ResultCode") 
     int resultCode; 

     public boolean isError() { 
      return error; 
     } 

     public void setError(boolean error) { 
      this.error = error; 
     } 

     public int getResultCode() { 
      return resultCode; 
     } 

     public void setResultCode(int resultCode) { 
      this.resultCode = resultCode; 
     } 


    } 

Und json analysieren wie folgt:

Gson gson = new Gson(); 
    Response response = gson.fromJson(response, Response.class); 

Jetzt können Sie Werte von Getter-Methode erhalten.

Für komplexe json Sie automatisch generierten Werkzeug für POJO http://www.jsonschema2pojo.org/

+0

Danke, es funktioniert! – Jorge

0

Ganz anders als die org.json JSONObject et. Bei allen Klassen, bei denen es sich im Wesentlichen um Java-Repräsentationen von JSON-Datenstrukturen handelt, ist GSON ein Framework für die Zuordnung von JSON zu Java-Objekten. Sie würden es so verwenden,

class Foo { 
    int i; 
    String s; 
} 

Gson gson = new GsonBuilder().create(); 
Foo f = gson.fromJson(reader, Foo.class); 

Gson untergeordneten Objekte hat JSON-Daten strcutures für die Darstellung aber Sie sie im Allgemeinen nicht verwenden, wenn Sie atypische etwas zu tun sind.

0

Option1

definieren Sie eine pojo Klasse und machen:

String json = "{\"error\": true,\"ResultCode\": 1}"; 
Gson g=new Gson(); 
Pojo p = g.fromJson(json, Pojo.class); 
p.getError(); 

Option2: ein wenig riskanter:

Parse zu Json Objekt und rufen Sie die Methode GetAsBoolean ()

String json = "{\"error\": true,\"ResultCode\": 1}"; 
Gson gson = new Gson(); 
JsonObject jsonObject = gson.fromJson(json, JsonObject.class); 
jsonObject.get("error").getAsBoolean();