Как заполнить ответ JSON (POST) в счетчик с помощью модернизации? - PullRequest
0 голосов
/ 11 октября 2018

Дорогие друзья, здесь, что нужно, нужно заполнить счетчик, который представляет собой ответ JSON от службы отдыха, использующей модификацию.После долгого исследования я не могу найти никаких примеров по этому вопросу, может кто-нибудь поделиться некоторыми примерами, основанными на этом, было бы очень полезно для меня, спасибо заранее!

Это ответ JSON, пожалуйста, помогите мне разобрать и заполнить ввертушка.

{
    "d": [
        {
            "__type": "ServiceType:#TVS_Complaint_BL.Entities",
            "Message": "OK",
            "Success": true,
            "ServiceCode": "P1",
            "ServiceName": "Paid Service",
            "nServiceID": 1
        },
        {
            "__type": "ServiceType:#TVS_Complaint_BL.Entities",
            "Message": "OK",
            "Success": true,
            "ServiceCode": "F1",
            "ServiceName": "Free Service",
            "nServiceID": 2
        },
        {
            "__type": "ServiceType:#TVS_Complaint_BL.Entities",
            "Message": "OK",
            "Success": true,
            "ServiceCode": "PS1",
            "ServiceName": "Post Warranty",
            "nServiceID": 3
        },
        {
            "__type": "ServiceType:#TVS_Complaint_BL.Entities",
            "Message": "OK",
            "Success": true,
            "ServiceCode": "FOC",
            "ServiceName": "FOC",
            "nServiceID": 4
        }
    ]
}

Ответ транспортного средства:

public class VehicleResponse {


    private List<DBean> d;

    public List<DBean> getD() {
        return d;
    }

    public void setD(List<DBean> d) {
        this.d = d;
    }

    public static class DBean {
        /**
         * __type : ServiceType:#TVS_Complaint_BL.Entities
         * Message : OK
         * Success : true
         * ServiceCode : P1
         * ServiceName : Paid Service
         * nServiceID : 1
         */

        private String __type;
        private String Message;
        private boolean Success;
        private String ServiceCode;
        private String ServiceName;
        private int nServiceID;

        public String get__type() {
            return __type;
        }

        public void set__type(String __type) {
            this.__type = __type;
        }

        public String getMessage() {
            return Message;
        }

        public void setMessage(String Message) {
            this.Message = Message;
        }

        public boolean isSuccess() {
            return Success;
        }

        public void setSuccess(boolean Success) {
            this.Success = Success;
        }

        public String getServiceCode() {
            return ServiceCode;
        }

        public void setServiceCode(String ServiceCode) {
            this.ServiceCode = ServiceCode;
        }

        public String getServiceName() {
            return ServiceName;
        }

        public void setServiceName(String ServiceName) {
            this.ServiceName = ServiceName;
        }

        public int getNServiceID() {
            return nServiceID;
        }

        public void setNServiceID(int nServiceID) {
            this.nServiceID = nServiceID;
        }
    }
}

Запрос Vechile:

public class VehicleRequest {


    /**
     * argRequest : {"Token":"356657bba5a94daeb02a2a5bd93c6b71"}
     */

    private ArgRequestBean argRequest;

    public ArgRequestBean getArgRequest() {
        return argRequest;
    }

    public void setArgRequest(ArgRequestBean argRequest) {
        this.argRequest = argRequest;
    }

    public static class ArgRequestBean {
        /**
         * Token : 356657bba5a94daeb02a2a5bd93c6b71
         */

        private String Token;

        public String getToken() {
            return Token;
        }

        public void setToken(String Token) {
            this.Token = Token;
        }
    }
}

1 Ответ

0 голосов
/ 11 октября 2018

Я бы порекомендовал вам использовать Gson, когда вы используете API с Retrofit.Следующие зависимости должны работать в соответствии с документацией:

dependencies {
   implementation 'com.google.code.gson:gson:2.8.5'
   implementation 'com.squareup.retrofit2:retrofit:2.4.0'
   implementation 'com.squareup.retrofit2:converter-gson:2.4.0'  

}

После получения данных ответов вы можете получить доступ к каждому экземпляру DBean с помощью Gson.Предположим, что данные вашего ответа извлекаются как Response<JsonObject> response:

gson = new Gson();    
List<DBean> dBeanList = new ArrayList<>();

JsonObject jsonObject = gson.toJsonTree(response.body()).getAsJsonObject();
dBeanList = jsonObject.getD().getAsJsonArray();

Затем вы можете заполнить счетчик списком DBean:

Spinner spinner = (Spinner) findViewById(R.id.spinner);
ArrayAdapter<DBean> adapterDBeans = new ArrayAdapter<> 
(this,android.R.layout.simple_spinner_item, dBeanList);

adapterDBeans.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapterDBeans);

Ссылки: https://github.com/codepath/android_guides/wiki/Consuming-APIs-with-Retrofit

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...