Map to Map<String, Integer> from restTemplate
本问题已经有最佳答案,请猛点这里访问。
我调用restTemplate 并接收rawMap。从调试中我看到键类和值类是字符串。没关系,因为响应我的 restTemplate 的服务以 JSON 格式发送地图。现在我想用这个代码创建地图:
|
1
2 |
我很好奇。有没有更有效和更清晰的方法来做到这一点?
我不能只从 restTemplate Map <String,Integer>.
接收
rest模板
|
1
|
- 我不确定,但类似的东西可能会起作用 Map<String, Integer> casted = raw.parallelStream().map(Map::put);
- stackoverflow.com/questions/8108887/…
RestTemplate 类提供了几个exchange() 方法。
它允许将 ParameterizedTypeReference 的实例指定为参数,其目的是捕获和传递泛型类型。
所以你可以做类似的事情:
|
1
2 3 |
这样做:
|
1
2 3 |
也是正确的(至少对于 Jackson),但如果该值无法转换为 Integer。在这种情况下,它将在运行时引发反序列化异常。
- @Sotirios Delimanolis 你有杰克逊/格森的参考资料或一个具体的例子来证明这样的事情吗?抱歉,现在没时间写真正的测试。
- 我对 Spring 模板的 exchange() 的最后一个有疑问。我会试一试。
- @Sotirios Delimanolis 我检查过了。它像你说的那样工作。至少与杰克逊在一起。我会删除我的答案,但不能因为它被接受。我至少更新了以符合现实。
来源:https://www.codenong.com/57558176/
