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 實用程序并將值解析為可以訪問其屬性和值的對象。
我希望這將有所幫助。
添加回答
舉報