使用 Jackson 庫將 JSON 字串反序列化為 Java Map 是常見需求。特別是當 JSON 結構包含巢狀物件時,正確的型別宣告能避免型別轉換錯誤。
ObjectMapper mapper = new ObjectMapper();
String json = "{\"new_terminal\":{\"term\":2,\"rows\":40,\"cols\":185,\"em_dimensions\":{\"w\":7,\"h\":14.96875}}}";
Map<String, Object> map = mapper.readValue(json, new TypeReference<Map<String, Object>>() {});
System.out.println(map);
// 輸出: {new_terminal={term=2, rows=40, cols=185, em_dimensions={w=7, h=14.96875}}}
TypeReference 保留泛型資訊,確保巢狀 Map 正確反序列化。HashMap.class,內層物件會變成 LinkedHashMap,雖然可用但型別不精確。JsonParseException、JsonMappingException、IOException 做錯誤處理。此範例展示了從 JSON 到巢狀 Map 的標準做法,可直接套用於專案中。