2011-11-13 17 views
1

を持つクラスIは、以下のクラス アンドロイドGson解析リストのフィールド

public class InfoSesionResponse { 

    EstadoRequest ESTADO; 
    List<InfoSesion> infosesion=new ArrayList<InfoSesion>(); 

} 

EstadoRequestとInfoSesionの両方が唯一の文字列フィールドを持つ単純なクラスです

を定義しています。

EstadoRequestには、CODIGOおよびDESCRIPCION String Fieldsがあります。 InfoSesionにはUSUARIO、CENTRO、CODIGOの文字列フィールドがあります。

私は私が正しいを指定する必要が'List<InfoSesion> infosesion=new ArrayList<InfoSesion>()'をdeserealize、ということを知って、私はすべてを一度deserealizeしようとしているが、私は道

を見つけることがあり、次のJSONレスポンス

{ 
    "ESTADO":{"CODIGO":"C","DESCRIPCION":"Todo bien"}, 
    "RESULTADO":[ 
      {"USUARIO":"Silveira Garc\u00eda, Francisco","CENTRO":"I.E.S. N\u00e9stor  
       Almendros","C_CODIGO":"41701183"}]} 

を取得parametrizetype ...

Type infosesionlistype= new TypeToken<List<InfoSesionResponse>>() {}.getType(); 
InfoSesionResponse infosesionresponse=gson.fromJson(jsonInfoSesion, infosesionlistype); 

しかし、そのように私は他のフィールドを忘れてる、エスタード

いつでも両方を管理できますか?

ありがとうございます。

答えて

0

いつでも両方を管理できますか?

はい。

JSON構造に合わせてJavaデータ構造を作成するには、最初からJSONを慎重に調べ、さまざまな部分を特定し、Javaで補完を定義するだけです。

// start object definition 

class Response 
{ 

} 

// start object definition 
// add reference of following type 
//  start object definition 

class Response 
{ 
    State ESTADO; 
} 

class State 
{ 

} 

// start object definition 
// add reference of following type 
//  start object definition 
//  add reference of type String or an enum 
//  add reference of type String 
//  end object definition 

class Response 
{ 
    State ESTADO; 
} 

class State 
{ 
    String CODIGO; 
    String DESCRIPCION; 
} 

// start object definition 
// add reference of following type 
//  start object definition 
//  add reference of type String or an enum 
//  add reference of type String 
//  end object definition 
// add reference to list or array of the following type 
//  start object definition 

class Response 
{ 
    State ESTADO; 
    List<Result> RESULTADO; 
} 

class Result 
{ 

} 

class State 
{ 
    String CODIGO; 
    String DESCRIPCION; 
} 
を:

{              // start object definition 
    "ESTADO":           // add reference of following type 
    {             //  start object definition 
     "CODIGO": "C",        //  add reference of type String or an enum 
     "DESCRIPCION": "Todo bien"     //  add reference of type String 
    },            //  end object definition 
    "RESULTADO": 
    [             // add reference to list or array of the following type 
     {            //  start object definition 
      "USUARIO": "Silveira García, Francisco", //  add String reference 
      "CENTRO": "I.E.S. Néstor Almendros",  //  add String reference 
      "C_CODIGO": "41701183"     //  add String or number reference 
     }            //  end object definition 
    ] 
}              // end object definition 

ステップバイステップ、コードにコメントを回します


// start object definition 
// add reference of following type 
//  start object definition 
//  add reference of type String or an enum 
//  add reference of type String 
//  end object definition 
// add reference to list or array of the following type 
//  start object definition 
//  add String reference 
//  add String reference 
//  add String or number reference 
//  end object definition 
// end object definition 

class Response 
{ 
    State ESTADO; 
    List<Result> RESULTADO; 
} 

class Result 
{ 
    String USUARIO; 
    String CENTRO; 
    String C_CODIGO; 
} 

class State 
{ 
    String CODIGO; 
    String DESCRIPCION; 
} 

アクションでコード:

import java.io.FileReader; 
import java.util.List; 

import com.google.gson.Gson; 

public class GsonFoo 
{ 
    public static void main(String[] args) throws Exception 
    { 
    Gson gson = new Gson(); 
    Response response = gson.fromJson(new FileReader("input.json"), Response.class); 
    System.out.println(gson.toJson(response)); 
    } 
} 

class Response 
{ 
    State ESTADO; 
    List<Result> RESULTADO; 
} 

class Result 
{ 
    String USUARIO; 
    String CENTRO; 
    String C_CODIGO; 
} 

class State 
{ 
    String CODIGO; 
    String DESCRIPCION; 
} 
関連する問題