我正在尝试使用MultiValuedMap作为休息服务的ResponseBody,但我在浏览器中得到的响应是:
{"空" :false}
使用MultiValueMap作为ResponseBody工作正常但在升级org.apache.commons库之后,不推荐使用MultiValueMap,而是使用MultiValuedMap。
以下是我的代码的相关部分:
import org.apache.commons.collections4.MultiValuedMap;
@RestController("DatabaseDefinitionRestController")
public class DatabaseDefinitionRestController {
@RequestMapping(value = "/database/{id}/definitions", method = RequestMethod.GET)
public MultiValuedMap<Long, DatabaseDefinition> mapDatabaseDefinitions(@PathVariable Long id) {
return databaseDefinitionService.loadDatabaseDefinition(id);
}
}
我也尝试过:
import org.apache.commons.collections4.multimap.ArrayListValuedHashMap;
@RestController("DatabaseDefinitionRestController")
public class DatabaseDefinitionRestController {
@RequestMapping(value = "/database/{id}/definitions", method = RequestMethod.GET)
public ArrayListValuedHashMap<Long, DatabaseDefinition> mapDatabaseDefinitions(@PathVariable Long id) {
return databaseDefinitionService.loadDatabaseDefinition(id);
}
}
任何帮助都将不胜感激。
答案 0 :(得分:0)
无论您使用什么进行序列化,都可能需要对所有核心Java集合进行特殊处理,包括Map
。不推荐使用的MultiValueMap
实现Map
,因此可以从特殊处理中受益。无论出于何种原因,新的MultiValuedMap
都没有。这使得它回退到默认的一般处理,这取决于使用的任何具体类的内部实现。
致电asMap()
上的MultiValuedMap
以查看实施Map
的内容,并将其放入ResponseBody
以获取特殊情况Map
基于序列化。