3 回答
TA贡献1799条经验 获得超9个赞
如果您需要存储多级地图,则需要将地图定义为<String, Object>,然后您需要查询值的类型以获取它
Map<String, Object> lhm = new HashMap<>();
Map<String, Object> subMap = new HashMap<>();
subMap.put("SchemaVersion", "1.0"); // storing String value
lhm.put("my-map", subMap); // storing Map value
// retrieval: need to query actual type of value
Object value = lhm.get("my-map");
if (value instanceOf String) {
String strValue = (String)value;
// process String value
} else {
Map mapValue = (Map)value;
// process Map value
}
但正如您所见,这很麻烦,而且容易出错。像 aTree这样的分层数据结构会好得多。
TA贡献1829条经验 获得超7个赞
我需要将各个值分配给变量
然后就这样做:
String varA = lhm.get("key A"); String varB = lhm.get("key B");
基本上,这是在 Java 中将值提取到变量中的唯一方法。你得get()
一一给他们。
请注意:您的代码将映射声明为Map<String, String>
,此处没有嵌套,键和值都是字符串。鉴于您当前的输入,除了简单之外别无他法get()
。
TA贡献1856条经验 获得超5个赞
查看您的输出,您的 HasMap 似乎具有 JSON 对象字符串。
为了提取 JSON 对象的值,您可以使用任何可用的 JSON 实用程序并将值解析为可以访问其属性和值的对象。
我希望这将有所帮助。
添加回答
举报