Преобразование xml в JSONObject иногда тип значения получает как ArrayList, а иногда как Object - PullRequest
0 голосов
/ 18 апреля 2019

При преобразовании 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
    }

Возможность возврата 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...