JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,而Java中json轉化則成為Java和其他編程語言交互的常用方式,Java中常用的json轉化工具有Jackson、Gson等。由于json轉化方法可以復用且常規,在Java開發中,我們可以將json轉化公共類封裝成工具類,方便開發者調用。
下面是一個基于Jackson的json轉化工具類:
public class JsonUtil { private static ObjectMapper objectMapper = new ObjectMapper(); /** * 對象轉JSON字符串 * @param obj 待轉化的對象 * @return 返回轉化后的JSON字符串 * @throws JsonProcessingException 轉化異常 */ public static String objectToJson(Object obj) throws JsonProcessingException { return objectMapper.writeValueAsString(obj); } /** * JSON字符串轉對象 * @param jsonStr 待轉化的JSON字符串 * @param clazz 對象類型 * @return 返回轉化后的對象 * @throws JsonProcessingException 轉化異常 */ public staticT jsonToObject(String jsonStr, Class clazz) throws JsonProcessingException { objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); return objectMapper.readValue(jsonStr, clazz); } }
在以上代碼中,我們通過使用 Jackson 的 ObjectMapper 類來實現 json 轉化功能,其中,objectMapper.writeValueAsString()方法和 objectMapper.readValue(jsonStr, clazz) 方法分別用來進行對象轉 json 字符串 和 json 字符串轉對象,供開發者使用。
通過封裝這樣一份json轉化工具類,可以快速的支持頁面間數據傳輸、Java Bean 對象和 JSON 字符串的自動映射等常規數據交互功能,并配合異常處理,在出現轉化異常時報錯提醒,提高了代碼的可讀性和易維護性。