将xml转换为JSONObject时,有时值的类型为ArrayList,有时为Object,因为我无法做到,因为我不知道xml何时会带有一个或多个“ registros”
public class Ccf {
@SerializedName("num_registros")
@Expose
protected String numRegistros;
@SerializedName("quantidade_total_cheques")
@Expose
protected String quantidadeTotalCheques;
@SerializedName("registros")
@Expose
protected List<Registros> registros;
//getter and setter
}
public class Registros {
@SerializedName("agencia")
@Expose
protected String agencia;
@SerializedName("banco")
@Expose
protected String banco;
@SerializedName("motivo")
@Expose
protected String motivo;
//getter and setter
}
触发Web服务时xml可能返回
String xml = "<num_registros>1</num_registros>" +
" <quantidade_total_cheques>9</quantidade_total_cheques>" +
" <registros>" +
" <agencia>3747</agencia>" +
" <banco>033 - BANCO SANTANDER (BRASIL) S.A.</banco>" +
" <motivo>12 - MOTIVO 12</motivo>" +
" </registros>";
String xmlArray = "<num_registros>1</num_registros>" +
" <quantidade_total_cheques>9</quantidade_total_cheques>" +
" <registros>" +
" <agencia>3747</agencia>" +
" <banco>033 - BANCO SANTANDER (BRASIL) S.A.</banco>" +
" <motivo>12 - MOTIVO 12</motivo>" +
" </registros>" +
" <registros>" +
" <agencia>3747</agencia>" +
" <banco>033 - BANCO SANTANDER (BRASIL) S.A.</banco>" +
" <motivo>12 - MOTIVO 12</motivo>" +
" </registros>";
JSONObject json = XML.toJSONObject(xml);
JSONObject jsonArrayRegistros = XML.toJSONObject(xmlArray);
Gson gson = new Gson();
//This works correctly
Ccf ccf = gson.fromJson(jsonArrayRegistros, Ccf.class);
//But this one I get the error: Expected BEGIN_ARRAY but was BEGIN_OBJECT
Ccf ccf = gson.fromJson(json, Ccf.class);