我通过此Retrofit界面向后端发送一个整数数组:
@PATCH("save/ids")
@FormUrlEncoded
Call<Output> saveIds(@Field("ids[]") List<Integer> ids);
现在,当我有ArrayList
个项目时,这会有效。
但要重置所有ID,服务器需要一个名为ids
的空数组。
当我发送一个空数组时,Retrofit不会发送数组 - 它只是删除了参数。
我按如下方式创建ArrayList
:
List<Integer> ids = new ArrayList<>();
for (FooObjects object : listOfIds) {
if (object.isEnabled()) {
ids.add(object.getId());
}
}
我怎样才能发送一个空阵列?
答案 0 :(得分:1)
最简单的方法是更改Gson转换器上的设置,以便序列化空值 - 然后根据需要发送service
。
使用带有serializeNulls()的GsonBuilder创建一个新的Gson实例:
"ids":[]
然后,您可以在设置改造实例时将其传递给改装构建器:
private Gson gson = new GsonBuilder().serializeNulls().create();
提供了广泛的配置选项,并在Gson文档中列出:adaptive cards visualizer