这行代码返回List<HashMap<String, String>>
List<HashMap<String,String>> map= restTemplate.postForObject(url,mvm,List.class);
通过此代码,我可以在index[0]
中成功获取id和name的值。
List<HashMap<String, String>> map;
map.get(0).get("id");
map.get(0).get("name");
地图的结构
HashMap<"id","1">
<"name","john">
<"parameters",HashMap<"key", "val"> <"key2","val2">>
如何从参数中获取数据?感谢。
答案 0 :(得分:1)
获取您可以执行的参数值
String val = ((HashMap)map.get(0).get("parameters")).get("key");
虽然您需要更改
HashMap<String, String>
至HashMap<String, Object>
以便此工作
答案 1 :(得分:0)
((HashMap)map.get(0).get("parameters")).get(map_key)
答案 2 :(得分:0)
尝试以下代码:
for(int i=0;i<map.size();i++){
map.get(i).get("id");
map.get(i).get("name");
}
将每个值保存到您需要的变量中。
答案 3 :(得分:0)
您只能从Map中获取字符串值,因为它已声明为List<HashMap<String,String>>
。如果它会说List<HashMap<String, Object>
你可以这样做:
package com.stackoverflow.maps;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public class InnerMaps {
public InnerMaps(List<HashMap<String,Object>> outerList) {
System.out.println("InnerMaps.<init>");
for (HashMap<String, Object> outerMap: outerList) {
for (String key: outerMap.keySet()) {
Object value = outerMap.get(key);
if (value.getClass().getName().equals(HashMap.class.getName())) {
HashMap<String,String> hashMap = (HashMap<String,String>)value;
System.out.println(key + ", hashMap:" + hashMap );
} else {
System.out.println(key + " : " + value);
}
}
}
}
public static void main(String[] args) {
List<HashMap<String,Object>> theList = new ArrayList<>();
HashMap<String,String> innerHashmap = new HashMap<>();
innerHashmap.put("innerOne", "innerOneValue");
innerHashmap.put("innerTwo", "innerTwoValue");
HashMap<String, Object> outer = new HashMap<>();
outer.put("one", new String("One Value"));
outer.put("two", innerHashmap);
theList.add(outer);
InnerMaps app = new InnerMaps(theList);
}
}