我定义了以下类
public class InfoSesionResponse {
EstadoRequest ESTADO;
List<InfoSesion> infosesion=new ArrayList<InfoSesion>();
}
EstadoRequest和InfoSesion都是只包含字符串字段的简单类。
EstadoRequest具有CODIGO和DESCRIPCION字符串字段。 InfoSesion有USUARIO,CENTRO和CODIGO String Fields。
我得到以下JSon响应
{
"ESTADO":{"CODIGO":"C","DESCRIPCION":"Todo bien"},
"RESULTADO":[
{"USUARIO":"Silveira Garc\u00eda, Francisco","CENTRO":"I.E.S. N\u00e9stor
Almendros","C_CODIGO":"41701183"}]}
我试图一次性实现所有目标,但我找不到方法
我知道要去实现'List<InfoSesion> infosesion=new ArrayList<InfoSesion>()'
我必须指定正确的参数类型......
Type infosesionlistype= new TypeToken<List<InfoSesionResponse>>() {}.getType();
InfoSesionResponse infosesionresponse=gson.fromJson(jsonInfoSesion, infosesionlistype);
以这种方式抱怨我忘记了另一个领域,ESTADO
我可以同时管理这两个吗?
提前致谢。
答案 0 :(得分:0)
我可以同时管理这两个吗?
是
要创建一个与JSON结构相匹配的Java数据结构,我只需从头开始仔细检查JSON,识别不同的部分,并用Java定义补充。
{ // 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
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
// 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;
}