我需要使用Retrofit发出GET请求,其中一个参数是键值par的数组,实际上是一个数组数组,如下所示:
[ [1, 10], [50, 100] ]
我想出了如何在POSTMAN中执行此请求:
Key: durations[0][0] Value: 1
Key: durations[0][1] Value: 10
等等。 但是,我不知道要为Retrofit代表这个。 谢谢你的帮助。
编辑:
我试图将其表示为@Query("durations[]") List<List<Integer>>
持续时间;单个条目是一个包含两个值的列表,即开始和结束。没有运气。
答案 0 :(得分:0)
我建议你使用这种方法
Object get( @Query("durations[0][0]") int value1,@Query("durations[0][1]") int value2,
@Query("durations[1][0]") int value3,@Query("durations[1][1]") int value4)
答案 1 :(得分:0)
所以基本上这就是我解决这个问题的方法。我只需手动构建我需要的参数字符串,并将其与值一起放入Map中。在您的Retrofit界面中,将其归档为@QueryMap:
@QueryMap Map<String, Integer> durations,
看一下制作参数的方法:
public void prepareDurations(Pair<Integer, Integer> durationValues) {
Map<String, Integer> paramsMap = new HashMap<>();
if(durationValues!=null) {
paramsMap.put("durations[0][0]", durationValues.first);
paramsMap.put("durations[0][1]", durationValues.second);
setDuration(paramsMap);
}else {
setDuration(new HashMap<>());
}
}