1. 程式人生 > >基於Jackson的JsonUtil實現字串與物件之間的轉換

基於Jackson的JsonUtil實現字串與物件之間的轉換

比較好用的工具類,要匯入Jackson-mapper-asl依賴。詳細看程式碼,其中DateTimeUtil是另外的工具類。

import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.codehaus.jackson.map.DeserializationConfig;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.SerializationConfig;
import
org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion; import org.codehaus.jackson.type.JavaType; import org.codehaus.jackson.type.TypeReference; import java.io.IOException; import java.text.SimpleDateFormat; /** * Created by xcw on 2018/3/30. */ @Slf4j public class JsonUtil { private static
ObjectMapper objectMapper = new ObjectMapper(); static { // 物件的所有欄位全部列入 objectMapper.setSerializationInclusion(Inclusion.ALWAYS); // 取消預設轉換timestamps形式 objectMapper.configure(SerializationConfig.Feature.WRITE_DATE_KEYS_AS_TIMESTAMPS, false); // 忽略空Bean轉Json的錯誤
objectMapper.configure(SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS, false); // 所有日期格式統一為 yyyy:MM:dd HH:mm:ss objectMapper.setDateFormat(new SimpleDateFormat(DateTimeUtil.STANDARD_FORMAT)); // 忽略在Json字串中存在,但在Java物件中不存在的對應屬性的狀況,防止錯誤 objectMapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false); } /** * 物件返回Json字串 * @param obj * @param <T> * @return */ public static <T> String obj2String(T obj) { if (obj == null) { return null; } try { return obj instanceof String ? (String) obj : objectMapper.writeValueAsString(obj); } catch (Exception e) { log.warn("Parse object to String error", e); return null; } } /** * 物件返回格式化後的Json字串 * @param obj * @param <T> * @return */ public static <T> String obj2StringPretty(T obj) { if (obj == null) { return null; } try { return obj instanceof String ? (String) obj : objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(obj); } catch (Exception e) { log.warn("Parse Object to String error", e); return null; } } /** * Json字串轉成物件 * @param str * @param clazz * @param <T> */ public static <T> T string2Obj(String str, Class<T> clazz) { if (StringUtils.isEmpty(str) || clazz == null) { return null; } try { return clazz.equals(String.class) ? (T) str : objectMapper.readValue(str, clazz); } catch (Exception e) { log.warn("Parse String to Object error", e); return null; } } /** * 泛型反序列化 * @param str * @param typeReference 對應返回值的型別 * @param <T> * @return */ public static <T> T string2Obj(String str, TypeReference<T> typeReference) { if (StringUtils.isEmpty(str) || typeReference == null) { return null; } try { return (T) (typeReference.getType().equals(String.class) ? str : objectMapper.readValue(str, typeReference)); } catch (IOException e) { log.warn("Parse String to Object error", e); return null; } } /** * 泛型反序列化 * @param str * @param collectionClass 集合的型別 * @param elementClasses 集合中元素的型別 * @param <T> * @return */ public static <T> T string2Obj(String str, Class<?> collectionClass, Class<?>... elementClasses) { JavaType javaType = objectMapper.getTypeFactory().constructParametricType(collectionClass, elementClasses); try { return objectMapper.readValue(str, javaType); } catch (IOException e) { log.warn("Parse String to Object error", e); return null; } } }

相關推薦

基於Jackson的JsonUtil實現字串物件之間轉換

比較好用的工具類,要匯入Jackson-mapper-asl依賴。詳細看程式碼,其中DateTimeUtil是另外的工具類。 import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.

gson實現字串物件的相互轉換

最近一個專案需要用到JSON,需要在JSON字串和物件之間相互轉換,在網上找了些資料,發現google的Gson還是比較不錯的。 廢話不說,下面是簡單的例子: 先上原始碼:下載(包含jar包) Person實體類 [java] view plain copy print?package com.hsu

基於Intent實現ActivityActivity之間的數據傳遞,實現二個Activity的跳轉功能

set second start pub category 方式 nds efi dac 在講參數傳遞之前,先講下intent的定義: Intent intent = new Intent(MainActivity.this,SecondActivity.class

使用jackson實現字串跟json之間轉換

1.pom.xml配置 <jackson-version>2.3.3</jackson-version> <!-- json analyz --> <dependency> <groupId>com.fasterxml.j

javascript json字串物件相互轉換

 在實際專案中,經常遇到字元格式的問題,記下來以便日後方便檢視。用到兩個函式:JSON.stringify() 和 JSON.parse()。  使用ajax向後臺請求資料,後臺給前端返回資料,明明後端指令碼寫的是json函式處理後的json格式,但是前端接收資料時,卻時而是

python實現字串二進位制相互轉換

#Convert a string to a binary def encode(Target_string): return ’ ‘.join([bin(ord©).replace(‘0b’, ‘’) for c in Target_string]) #Convert binary to

JAXB實現xml物件互相轉換

不需要引入任何外部jar包,JAXB自jdk1.5就已被整合,jdk1.7已升級為JAXB2。 1.xml報文 <?xml version="1.0" encoding="UTF-8"?> <root xmlns="urn:iso:std:iso:20022:tec

基於haneWIN實現windowslinux之間檔案共享

一、haneWIN簡介 1、haneWIN是在windows系統上搭建NFS Server的軟體。 2、NFS是網路檔案系統,是FreeBSD支援的檔案系統中的一種,它允許網路中的計算機之間通過TCP/IP網路共享資源。在NFS的應用中,本地NFS的客戶端應

利用Google Gson實現JSON字串物件之間相互轉換

最近一個專案需要用到JSON,需要在JSON字串和物件之間相互轉換,在網上找了些資料,發現google的Gson還是比較不錯的。 廢話不說,下面是簡單的例子: 先上原始碼:下載(包含jar包) Person實體類 package com.hsun.json; /** * Pe

C#實現Streambyte[]之間轉換實例教程

inpu more family get this splay 登錄 line mem 本文以實例形式詳細介紹了C#實現Stream與byte[]之間的轉換的方法,分享給大家供大家參考之用。具體方法如下: 一、二進制轉換成圖片 MemoryStream ms = new

字串陣列之間的互相轉換

將物件或者陣列或者物件陣列轉換成字串------JSON.stringify let obj= {name:'ming',age:18} console.log(JSON.stringify(obj)); let obj= [{name:'ming'

PHP陣列物件之間相互轉換

/**  * 陣列 轉 物件  *  * @param array $arr 陣列  * @return object  */ function ar

python3 json 物件之間的相互轉換

原文地址:http://blog.csdn.net/leilba/article/details/50654256 真的很感謝 # -*- coding: UTF-8 -*- import json #自定義類 class MyClass:

java json字串物件轉換

下載引入包gson-2.0.jar 1.字元轉資料 final Map map = new HashMap();map.put("contents",    "[{\"Id\":\"111\",\"AcceptNum\":222,\"ArchiveNum\":

javaWeb前後端中 JSON&JSON字串&java實體物件 之間轉換

    JSON是前端js語言中, 用來與其他語言互動的一種輕量級的資料交換格式, 交換時以字串形式傳遞, 各語言再進行解析即可使用; 相比於XML語言, JSON用來傳輸資料, 層次結構清晰簡單, 目前已基本取代XML, 廣泛被用來跨語言傳輸資料;   

利用operator實現字串數字的通用轉換

利用operator來進行類型別的隱式轉換,在類中實現operator T,即可將類型別轉為T型別 template <typename T> class string_cast { public: string_cast(const std::

json物件之間的相互轉換

1,將實體類的每個屬性以鍵值對的形式發到map中  ErrorCode code =new ErrorCode(1, "SUCCESS"); JSONObject json=JSONObject.fromObject(co

字串整數之間轉換

最近經常用到字串與整數之間的轉換,整理了一下,包含 1、檢驗是否為整數 2、字串轉為整數 3、從字串中提取數字 直接上程式碼: /** * 檢查是否為INT型別,已經對空進行處理 */ public static boolean isInt(

用Gson實現json物件、list集合之間的相互轉化

                先寫一個Person實體類,匯入Gson包                 String jsonData="{\"userid\":\"1881140130\"}";//第一種寫法                 //1.把json轉化為一

基於jackson的Json物件的互相轉換

  在JavaWeb開發中,經常會涉及到相關的json與物件的互相轉化問題,下面我就將其轉化的過程中可能遇到的情況一一寫出。 新增依賴 jackson依賴 <!--jackson--> <depend