使用 MultiValuedMap 作为 ResponseBody 给出 {"empty" : false} 作为响应
Using MultiValuedMap as ResponseBody gives {"empty" : false} as response
我正在尝试使用 MultiValuedMap 作为休息服务的 ResponseBody,但我在浏览器中得到的响应是:
{"empty" : 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);
}
}
如有任何帮助,我们将不胜感激。
无论您使用什么进行序列化,都可能对所有核心 Java 集合(包括 Map
)进行特殊情况处理。已弃用的 MultiValueMap
实现了 Map
并因此受益于这种特殊处理。新的 MultiValuedMap
,无论出于何种原因,都没有。这使得它依赖于默认的一般处理,这取决于所使用的具体 class 的内部实现。
在 MultiValuedMap
上调用 asMap()
以获得实现 Map
的视图,并将其放入您的 ResponseBody
以获得特殊情况 Map
基于序列化。
我正在尝试使用 MultiValuedMap 作为休息服务的 ResponseBody,但我在浏览器中得到的响应是:
{"empty" : 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);
}
}
如有任何帮助,我们将不胜感激。
无论您使用什么进行序列化,都可能对所有核心 Java 集合(包括 Map
)进行特殊情况处理。已弃用的 MultiValueMap
实现了 Map
并因此受益于这种特殊处理。新的 MultiValuedMap
,无论出于何种原因,都没有。这使得它依赖于默认的一般处理,这取决于所使用的具体 class 的内部实现。
在 MultiValuedMap
上调用 asMap()
以获得实现 Map
的视图,并将其放入您的 ResponseBody
以获得特殊情况 Map
基于序列化。