发送 JSON 数组改装 2(安卓) [英] SEND JSON ARRAY RETROFIT 2 (ANDROID)

查看:48
本文介绍了发送 JSON 数组改装 2(安卓)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是新手,知道这个问题有很多帖子,但我没有找到我的答案.

I'm novice and know there are many post for this question but i don't find my answer.

因此,我需要使用 Retrofit2 和请求PATCH"来升级用户及其议程.但是,我不知道如何使用 Retrofit2 做到这一点.

So, I need to upgrade a user and his agenda with retrofit2 and the Request "PATCH". But, i don't know how do that with Retrofit2.

即使通过我的研究……也没有任何效果!

Even with my research ... Nothing work !

你能帮我吗?

感谢提前 :D

这是我必须发送的内容:

Here is what I have to send :

{
    "gender": "M",
    "trainerName": "Patrick",
    "laterality": "L",
    "email": "xxxx@gmail.com",
    "phoneNumber": "XXXXX",
    "agendaWeekDays": [
        {
            "position": 1,
            "startSeconds": 648000,
            "endSeconds": 72000
        }, 
        {
            "position": 2,
            "startSeconds": 0,
            "endSeconds": 459
        }
    ]
}

回复只是:

{
  "success"
}

我的请求

public interface Minterface {
@FormUrlEncoded
@PATCH("api/members/current")
Call<String> test(
        @Field("access_token") String access_token,
        @Field("agendaWeekDays") ArrayList<Agenda> agendaWeekDays);
}

议程类:

public class Agenda 
{

    @SerializedName("position")
    @Expose
    private Integer position;
    @SerializedName("startSeconds")
    @Expose
    private Integer startSeconds;
    @SerializedName("endSeconds")
    @Expose
    private Integer endSeconds;

    public Integer getPosition() {
        return position;
    }

    public void setPosition(Integer position) {
        this.position = position;
    }

    public Integer getStartSeconds() {
        return startSeconds;
    }

    public void setStartSeconds(Integer startSeconds) {
        this.startSeconds = startSeconds;
    }

    public Integer getEndSeconds() {
        return endSeconds;
    }

    public void setEndSeconds(Integer endSeconds) {
        this.endSeconds = endSeconds;
    }
}

推荐答案

public class Example {

@SerializedName("gender")
@Expose
private String gender;
@SerializedName("trainerName")
@Expose
private String trainerName;
@SerializedName("laterality")
@Expose
private String laterality;
@SerializedName("email")
@Expose
private String email;
@SerializedName("phoneNumber")
@Expose
private String phoneNumber;
@SerializedName("agendaWeekDays")
@Expose
private List<AgendaWeekDay> agendaWeekDays = null;

public String getGender() {
return gender;
}

public void setGender(String gender) {
this.gender = gender;
}

public String getTrainerName() {
return trainerName;
}

public void setTrainerName(String trainerName) {
this.trainerName = trainerName;
}

public String getLaterality() {
return laterality;
}

public void setLaterality(String laterality) {
this.laterality = laterality;
}

public String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email;
}

public String getPhoneNumber() {
return phoneNumber;
}

public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}

public List<AgendaWeekDay> getAgendaWeekDays() {
return agendaWeekDays;
}

public void setAgendaWeekDays(List<AgendaWeekDay> agendaWeekDays) {
this.agendaWeekDays = agendaWeekDays;
}

}

public class AgendaWeekDay {

@SerializedName("position")
@Expose
private Integer position;
@SerializedName("startSeconds")
@Expose
private Integer startSeconds;
@SerializedName("endSeconds")
@Expose
private Integer endSeconds;

public Integer getPosition() {
return position;
}

public void setPosition(Integer position) {
this.position = position;
}

public Integer getStartSeconds() {
return startSeconds;
}

public void setStartSeconds(Integer startSeconds) {
this.startSeconds = startSeconds;
}

public Integer getEndSeconds() {
return endSeconds;
}

public void setEndSeconds(Integer endSeconds) {
this.endSeconds = endSeconds;
}

}

之后你想通过改造创建对象o示例类发送它

After that where you want to send it via retrofit create object o example class

Example example = new Example();

之后,将此对象的值设置为:

After that set values to this object as :

example.setGender("M");
.
.
.
example.setAgendaWeekDays(your arraylist);

然后

retrofit.method(token,example).enqueue(new Callback<Void>()
{
@Override
public void onResponse(Call<Void> call, Response<Void> response)
{
                                            if(response.message().equalsIgnoreCase("OK"))
{
}
else 
{}

然后将您的方法定义为:

Then define your method as:

@POST("link here")
    Call<Void> method(@Header("Authorization") String authorization, @Body Example example);

它会起作用.

这篇关于发送 JSON 数组改装 2(安卓)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆