我有一个父ArrayList
和一个孩子HashMap
:
List countries = new ArrayList();
Map<String, String> data_dummy = new HashMap<String, String>();
data_dummy.put("name", "abc");
data_dummy.put("surname", "xyz");
Map<String, String> data_dummy2 = new HashMap<String, String>();
data_dummy2.put("name", "def");
data_dummy2.put("surname", "pqr");
countries.add(data_dummy);
countries.add(data_dummy2);
我正在尝试使用语法进行迭代:
<#list countries as category>
<#assign keys = countries[category]?keys>
<#list keys as values>
${keys[values]}
</#list>
</#list>
它不起作用,请告诉我如何解决这个问题。 谢谢 阿米特
答案 0 :(得分:0)
尝试类似:
<#list countries as category>
<#assign keys = category?keys>
<#list keys as key>
${category.get(key)}
</#list>
</#list>
答案 1 :(得分:0)
嗯,你已经混淆了并错过了一些事情,但我发现你已经意识到这一点。但是,另一个(目前接受的)答案不是任何人应该做的。由于您的密钥为String
- s,因此您只需使用someMap[someKey]
即可。即使对于非字符串键someMap.get(someKey)
也只适用于特定的配置设置,强烈建议不要这样做,因为它会将真正的Map
键与方法名称混合在一起。一团糟。 someMap?api.get(someKey)
现在是更好的方法,因为方法名称不必污染密钥命名空间。 (请注意,由于向后兼容性限制,它仍然需要一些额外的配置;手册涵盖的很好。)