Java 如何使用Square更新将多维散列作为查询参数传递
我有一个字符串id和点的映射,我需要从中生成一个类似于以下内容的路径:Java 如何使用Square更新将多维散列作为查询参数传递,java,android,retrofit,Java,Android,Retrofit,我有一个字符串id和点的映射,我需要从中生成一个类似于以下内容的路径: .../?assessment[id_1][points]=3&assessment[id_2][points]=5 我不太确定在改造中我会怎么做。 我尝试手动生成一个字符串并将其追加到请求的末尾 @PUT("/path/to/api/{assessment}?{}") void postScore(@Path("assessment") String rubricAssessment, Callback&
.../?assessment[id_1][points]=3&assessment[id_2][points]=5
我不太确定在改造中我会怎么做。
我尝试手动生成一个字符串并将其追加到请求的末尾
@PUT("/path/to/api/{assessment}?{}")
void postScore(@Path("assessment") String rubricAssessment, Callback<Submission> callback);
有人能提出一个更好的方法来实现这一点吗
谢谢你阅读我的问题
编辑:
我发现一个可能的解决方案是使用QueryMap或FieldMap,但这仍然需要我创建一个助手方法来手动构造每个键值。大概是这样的:
private static String getFieldMap(Map<String,String> map){
Map<String, String> fieldMap = new HashMap<String, String>();
for (Map.Entry<String, String> entry : map.entrySet())) {
map.put("assessment[" +entry.getCriterionId() +"][points]", String.valueOf(entry.getPoints()));
}
return fieldMap;
}
void postScore(@Path("assessment") String rubricAssessment, @QueryMap Map<String,String> callback)
私有静态字符串getFieldMap(映射映射){
Map fieldMap=新的HashMap();
for(Map.Entry:Map.entrySet()){
map.put(“assessment[”+entry.getCriterionId()+“][points]”,String.valueOf(entry.getPoints());
}
返回场地图;
}
然后把地图传给这样的东西
@put("/things")
void things(@FieldMap Map<String, String> fields);
}
@put(“/things”)
作废内容(@FieldMap-fields);
}
这是最好的方法吗?非常感谢您的反馈。您是正确的。您确实可以使用
QueryMap
。老实说,我从未尝试过使用FieldMap
,因为QueryMap
对我来说非常好
如果您想使用queryMap,它非常简单。例如:
Map testMap = new HashMap<String,String>();
testMap.put("key1", "value1");
testMap.put("key2", "value2");
您的改装电话应如下所示:
private static String getFieldMap(Map<String,String> map){
Map<String, String> fieldMap = new HashMap<String, String>();
for (Map.Entry<String, String> entry : map.entrySet())) {
map.put("assessment[" +entry.getCriterionId() +"][points]", String.valueOf(entry.getPoints()));
}
return fieldMap;
}
void postScore(@Path("assessment") String rubricAssessment, @QueryMap Map<String,String> callback)
void postScore(@Path(“assessment”)字符串rubricasessment,@QueryMap回调)
希望这有帮助。为什么最后一个表达式的回调类型是
Map
?它应该是一个回调
,对吗?我也有同样的问题。根据本文的讨论,改型似乎不支持嵌套查询/字段。谢谢