Jackson 是一個 Java 庫,用于將 Java 對象轉換為 JSON,并將 JSON 轉換為 Java 對象。它提供了多種用于不同情況下的 JSON 數據解析的 API。本文將介紹如何使用 Jackson 將 JSON 轉換為 Map。
使用 Jackson 的 ObjectMapper 類可以很方便地將 JSON 轉換為 Java 對象。要將 JSON 轉換為 Map,只需使用 readValue() 方法將 JSON 字符串和 Map.class 參數傳遞給 ObjectMapper 的實例即可:
ObjectMapper objectMapper = new ObjectMapper(); try { Map<String, Object> map = objectMapper.readValue(jsonString, new TypeReference<Map<String, Object>>(){}); System.out.println(map); } catch (IOException e) { e.printStackTrace(); }
在上述代碼中,我們首先創建了一個 ObjectMapper 的實例,然后調用其 readValue() 方法,將 JSON 字符串和類型引用傳遞給該方法。類型引用指定了解析的返回類型,上面代碼中類型引用為 Map<String, Object>,表示將 JSON 轉換為一個鍵值對的 Map。最后,將此 Map 打印出來。
有一個需要注意的地方是,在使用 readValue() 方法時,應當將 JSON 對象包裹在花括號({})中,否則會拋出異常:
// 錯誤的形式 String jsonString = "[{'name':'張三','age':18},{'name':'李四','age':20}]"; Map<String, Object> map = objectMapper.readValue(jsonString, new TypeReference<Map<String, Object>>(){}); // 拋出異常 // 正確的形式 String jsonString = "{'name':'張三','age':18}"; Map<String, Object> map = objectMapper.readValue(jsonString, new TypeReference<Map<String, Object>>(){});
現在,我們已經介紹了如何使用 Jackson 將 JSON 轉換為 Map。這個功能可以幫助我們更方便地處理 JSON 數據,并將其轉換為適當的數據結構。