android - 如何根据改造请求传递对象数组?
问题描述
我想使用我的改造请求传递对象数组。通过 Volley,我们将请求数组传递为,
{OrderId=11692, ItemsList[1][Amount]=1, ItemsList[1][id]=29, ItemsList[1][Notes]=2.0, ItemsList[0][TypeId]=23, ItemsList[0][Notes]=15.0, ItemsList[1][serviceId]=28, ItemsList[0][serviceId]=27, ItemsList[0][Amount]=3, ItemsList[0][id]=29, ItemsList[1][TypeId]=23}
如何使用这种格式发送请求?
我正在尝试这样:
@FormUrlEncoded
@POST("api/shidhin/UpdateOrder")
Call<CommonResponse> updateOrderItems(@Header("Authorization") String token, @Field("OrderId") int orderid, @Field("ItemsList[]") ItemsList[] itemsList);
ItemsList.java 类文件
public class ItemsList {
@SerializedName("id")
private int id;
@SerializedName("Amount")
private int Amount;
@SerializedName("Notes")
private String Notes;
@SerializedName("serviceId")
private int serviceId;
@SerializedName("TypeId")
private int TypeId;
}
解决方案
我通过将对象数组传递为@FieldMap
. 她是O解决这个问题的方式,
创建对象数组,
Order.Orderitems orderitems;
Map<String, String> parms = new HashMap<String, String>();
for (int i = 0; i < orderItems.size(); i++) {
orderitems = orderItems.get(i);
parms.put("ItemsList[" + i + "][id]", String.valueOf(orderitems.getId()));
parms.put("ItemsList[" + i + "][Amount]", String.valueOf(orderitems.getAmount()));
parms.put("ItemsList[" + i + "][Notes]", "");
parms.put("ItemsList[" + i + "][serviceId]", String.valueOf(orderitems.getServiceId()));
parms.put("ItemsList[" + i + "][TypeId]", String.valueOf(orderitems.getServiceTypeId()));
}
还进行了 API 调用,例如,
@FormUrlEncoded
@POST("api/shidhin/UpdateOrder")
Call<CommonResponse> updateOrderItems(@Header("Authorization") String token, @Field("OrderId") int orderid, @FieldMap Map<String, String> parms);
推荐阅读
- excel - 从开始日期和结束日期填写单元格
- eclipse - Github 无法从 SCM 结帐 - SSH
- javascript - 如何使用 get 和 post 恢复我发送的文件
- javascript - 尝试使用表单数据将文件上传到 rest api
- javascript - 当您的手指在 iframe 上方时垂直滚动页面
- keycloak - Keycloak API,加密数据
- android - react-native-video 4k 视频冻结
- wordpress - Wordpress 主题更改旧主题出现第二次
- sql - 动态 SQL 基于 json 字段选择多列,不暴露 SQL 注入风险
- google-cloud-platform - GCP SQL 2016 实例,我想将 SQL 降级为 SQL Express