Java使用ObjectMapper作數據轉換的經常使用工具類實現

1.介紹

ObjectMapper類是Jackson庫的主要類,它提供一些功能將數據集或對象轉換的實現html

2.依賴包

<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.5</version>
</dependency>

<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.9.5</version>
</dependency>

<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations -->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
    <version>2.9.5</version>
</dependency>

3.工具類實現

package org.tempuri; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; public class JsonUtils { private static ObjectMapper mapper = new ObjectMapper(); static { //序列化的時候序列對象的全部屬性
 mapper.setSerializationInclusion(Include.ALWAYS); //反序列化的時候若是多了其餘屬性,不拋出異常
        mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); //若是是空對象的時候,不拋異常
        mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); //取消時間的轉化格式,默認是時間戳,能夠取消,同時須要設置要表現的時間格式
        mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")); } /** * 對象轉爲Json字符串 * @param data * @return
     */
    public static String transferToJson(Object data) { String jsonStr = null; try { jsonStr = mapper.writeValueAsString(data); } catch (JsonProcessingException e) { e.printStackTrace(); } return jsonStr; } /** * 對象轉爲byte數組 * @param data * @return
     */
    public static byte[] transferToBytes(Object data) { byte[] byteArr = null; try { byteArr = mapper.writeValueAsBytes(data); } catch (JsonProcessingException e) { e.printStackTrace(); } return byteArr; } /** * json字符串轉爲對象 * @param str * @param valueType * @return
     */
    public static <T> T jsonToTransfer(String str, Class<T> valueType) { T data = null; try { data = mapper.readValue(str, valueType); } catch (JsonParseException e) { e.printStackTrace(); } catch (JsonMappingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return data; } /** * byte數組轉爲對象 * @param byteArr * @param valueType * @return
     */
    public static <T> T bytesToTransfer(byte[] byteArr, Class<T> valueType) { T data = null; try { data = mapper.readValue(byteArr, valueType); } catch (JsonParseException e) { e.printStackTrace(); } catch (JsonMappingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return data; } public static void main(String[] args) { List<Map<String, String>> list = new ArrayList<>(); Map<String, String> map1 = new HashMap<>(); map1.put("id", "1"); map1.put("name", "我是一"); list.add(map1); Map<String, String> map3 = new HashMap<>(); map3.put("id", "3"); map3.put("name", "我是三"); list.add(map3); Map<String, String> map2 = new HashMap<>(); map2.put("id", "2"); map2.put("name", "我是二"); list.add(map2); System.out.println(list); System.out.println(transferToJson(list)); } }

原文出處:https://www.cnblogs.com/superSubfn/p/12077365.htmljava

相關文章
相關標籤/搜索