2016-05-09 4 views
0

に、ここに私のJSONが(サーバーから)であるは、私は情報を取得するためにこのコードを使用していたので、JSONからGSON/Androidの

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

を変更しますGSON、しかし、私は "getboolean"や "getInt"のようなものはないことに気づいた。どのように私の値/データを取得できますか?

+0

のための複雑なJSON、あなたの自動生成ツールの

あなたがGSONを使用してJSONを解析したいですか? – USKMobility

+0

現在のコードで何が問題になっていますか? –

+0

GsonはJSONからJavaクラスを生成できます。だから、あなたが新しいGson()をやるとき.Jsonから。 JSONレスポンスに相当するJavaクラスを取得します。 –

答えて

0

GSONを使用してjsonレスポンスを解析する場合。 jsonレスポンスに対応するモデルまたはPOJOクラスを作成します。たとえば、あなたのJSONレスポンスと対応する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; 
     } 


    } 

、次のようにJSONをパース:

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

は今、あなたはgetterメソッドから値を取得することができます。 POJO http://www.jsonschema2pojo.org/

+0

ありがとう、それは動作します! – Jorge

0

org.jsonとはまったく異なります。JSONObjectなど。本質的にJSONデータ構造のJava表現であるalクラスは、JSONをJavaオブジェクトにマッピングするためのフレームワークです。あなたは、このようにそれを使用したい

class Foo { 
    int i; 
    String s; 
} 

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

はGSONはJSONデータstrcuturesを表現するための下位レベルのオブジェクトを持っていないが、あなたは非定型何かをやっていない限り、あなたは一般的に利用していません。

0

オプション1

あなたはPOJOクラスを定義します

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

オプション2:少しより危険:

JSONオブジェクトに解析および方法getAsBoolean(呼び出し)

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