You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Retrofit2提交JSON格式的数组类型行数据

Retrofit2 提交目标JSON数组实现方案

1. 定义数据映射实体类

Java 版本

import com.google.gson.annotations.SerializedName;
import java.util.Date;

public class Beneficiary {
    @SerializedName("BeneficiaryNameID")
    private int beneficiaryNameID;
    @SerializedName("BeneficiaryName")
    private String beneficiaryName;
    @SerializedName("RFIDTag")
    private String rfidTag;
    @SerializedName("Village")
    private String village;
    @SerializedName("Faliya")
    private String faliya;
    @SerializedName("createDate")
    private Date createDate;
    @SerializedName("RehabStatus")
    private int rehabStatus;

    // 构造方法、getter、setter自行生成
    public Beneficiary(int beneficiaryNameID, String beneficiaryName, String rfidTag, String village, String faliya, Date createDate, int rehabStatus) {
        this.beneficiaryNameID = beneficiaryNameID;
        this.beneficiaryName = beneficiaryName;
        this.rfidTag = rfidTag;
        this.village = village;
        this.faliya = faliya;
        this.createDate = createDate;
        this.rehabStatus = rehabStatus;
    }
}

Kotlin 版本

import com.google.gson.annotations.SerializedName
import java.util.Date

data class Beneficiary(
    @SerializedName("BeneficiaryNameID")
    val beneficiaryNameID: Int,
    @SerializedName("BeneficiaryName")
    val beneficiaryName: String,
    @SerializedName("RFIDTag")
    val rfidTag: String,
    @SerializedName("Village")
    val village: String,
    @SerializedName("Faliya")
    val faliya: String,
    @SerializedName("createDate")
    val createDate: Date,
    @SerializedName("RehabStatus")
    val rehabStatus: Int
)

2. 定义API请求接口

Java 版本

import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.POST;
import java.util.List;

public interface BeneficiaryApi {
    // 替换为实际的接口路径
    @POST("api/beneficiary/submit")
    Call<Void> submitBeneficiaryList(@Body List<Beneficiary> beneficiaryList);
}

Kotlin 版本

import retrofit2.http.Body
import retrofit2.http.POST
import retrofit2.Call

interface BeneficiaryApi {
    // 替换为实际的接口路径
    @POST("api/beneficiary/submit")
    fun submitBeneficiaryList(@Body beneficiaryList: List<Beneficiary>): Call<Void>
}

3. 初始化Retrofit并发起请求

Java 版本

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;

public class RequestDemo {
    public void sendRequest() throws ParseException {
        // 配置Gson日期格式,匹配你需要的日期规则
        Gson gson = new GsonBuilder()
                .setDateFormat("dd/M/yyyy hh:mm:ss a")
                .create();

        // 初始化Retrofit,替换为实际的服务端根地址
        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl("https://your-server-base-url.com/")
                .addConverterFactory(GsonConverterFactory.create(gson))
                .build();

        BeneficiaryApi api = retrofit.create(BeneficiaryApi.class);

        // 构造请求数据
        SimpleDateFormat sdf = new SimpleDateFormat("dd/M/yyyy hh:mm:ss a", Locale.ENGLISH);
        List<Beneficiary> list = new ArrayList<>();
        list.add(new Beneficiary(1, "Ronak", "00000001", "valsad", "valsad", sdf.parse("10/4/2021 2:57:31 PM"), 1));
        list.add(new Beneficiary(2, "Rachna", "00000002", "gurgoun", "test", sdf.parse("10/4/2021 2:57:31 PM"), 2));

        // 发起异步请求
        api.submitBeneficiaryList(list).enqueue(new retrofit2.Callback<Void>() {
            @Override
            public void onResponse(Call<Void> call, retrofit2.Response<Void> response) {
                // 请求成功处理逻辑
            }

            @Override
            public void onFailure(Call<Void> call, Throwable t) {
                // 请求失败处理逻辑
            }
        });
    }
}

Kotlin 版本

import com.google.gson.GsonBuilder
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
import java.text.SimpleDateFormat
import java.util.*

class RequestDemo {
    fun sendRequest() {
        // 配置Gson日期格式,匹配你需要的日期规则
        val gson = GsonBuilder()
            .setDateFormat("dd/M/yyyy hh:mm:ss a")
            .create()

        // 初始化Retrofit,替换为实际的服务端根地址
        val retrofit = Retrofit.Builder()
            .baseUrl("https://your-server-base-url.com/")
            .addConverterFactory(GsonConverterFactory.create(gson))
            .build()

        val api = retrofit.create(BeneficiaryApi::class.java)

        // 构造请求数据
        val sdf = SimpleDateFormat("dd/M/yyyy hh:mm:ss a", Locale.ENGLISH)
        val list = listOf(
            Beneficiary(1, "Ronak", "00000001", "valsad", "valsad", sdf.parse("10/4/2021 2:57:31 PM"), 1),
            Beneficiary(2, "Rachna", "00000002", "gurgoun", "test", sdf.parse("10/4/2021 2:57:31 PM"), 2)
        )

        // 发起异步请求
        api.submitBeneficiaryList(list).enqueue(object : retrofit2.Callback<Void> {
            override fun onResponse(call: retrofit2.Call<Void>, response: retrofit2.Response<Void>) {
                // 请求成功处理逻辑
            }

            override fun onFailure(call: retrofit2.Call<Void>, t: Throwable) {
                // 请求失败处理逻辑
            }
        })
    }
}

注意事项

  • 代码里的服务端根地址、接口路径需要替换为你实际的业务地址
  • 如果你不需要把createDate解析为Date类型,可以直接声明为String类型,不需要额外配置Gson的日期格式
  • 确保你已经引入了Retrofit、Gson转换器的相关依赖

内容的提问来源于stack exchange,提问作者Deepika Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 07:24:04