Json反序列化物件通用工具類
一、json需要依賴的包
jackson.version可以參考地址:http://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core
<!-- jackson -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
二、json反序列化工具類
import java.io.IOException;
import java.util.List;
import java.util.Map;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.ObjectMapper;
public class JsonUtils {
// 定義jackson物件
private static final ObjectMapper MAPPER = new ObjectMapper();
static {
// 忽略JSON中沒有的欄位,防止反序列化物件的時候報找不到屬性欄位的異常
MAPPER.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
// 如果json字串中含有新行時,加上這個
MAPPER.configure(JsonParser.Feature.ALLOW_UNQUOTED_CONTROL_CHARS, true);
//空值轉換異常
MAPPER.configure(JsonParser.Feature.ALLOW_COMMENTS, true) ;
}
/**
* 將物件轉換成json字串。
* <p>
* Title: pojoToJson
* </p>
* <p>
* Description:
* </p>
*
* @param data
* @return
*/
public static String objectToJson(Object data) {
try {
String string = MAPPER.writeValueAsString(data);
return string;
} catch (JsonProcessingException e) {
e.printStackTrace();
}
return null;
}
/**
* 將json結果集轉化為物件
*
* @param jsonData
* json資料
* @param clazz
* 物件中的object型別
* @return
*/
public static <T> T jsonToPojo(String jsonData, Class<T> beanType) {
try {
T t = MAPPER.readValue(jsonData, beanType);
return t;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 將json資料轉換成pojo物件list
* <p>
* Title: jsonToList
* </p>
* <p>
* Description:
* </p>
*
* @param jsonData
* @param beanType
* @return
*/
public static <T> List<T> jsonToList(String jsonData, Class<T> beanType) {
JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType);
try {
List<T> list = MAPPER.readValue(jsonData, javaType);
return list;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
/**
* json字串轉Map集合
* @param jsonStr
* @return
* @throws IOException
*/
@SuppressWarnings("unchecked")
public static Map<String, Object> parseMap(String jsonStr) throws IOException {
Map<String, Object> map = MAPPER.readValue(jsonStr, Map.class);
return map;
}
/**
* json字串轉List集合
* @param jsonStr
* @return
* @throws IOException
*/
public static List<String> parseList(String jsonStr) throws IOException {
return MAPPER.readValue(jsonStr, new TypeReference<List<String>>() {});
}
}
相關文章
- [.net 物件導向程式設計進階] (13) 序列化(Serialization)(五) Json 序列化利器 Newtonsoft.Json 及 通用Json類物件程式設計JSON
- Python實現JSON反序列化類物件PythonJSON物件
- JSON 物件序列化、反序列化JSON物件
- JavaScript物件序列化為JSONJavaScript物件JSON
- 客戶端序列化JSON物件客戶端JSON物件
- Java物件的序列化與反序列化-Json篇Java物件JSON
- Excel通用類工具(二)Excel
- elasticsearch通用工具類Elasticsearch
- 關於物件序列化json 說說物件JSON
- python json反序列化為物件PythonJSON物件
- Python中類的JSON序列化PythonJSON
- 常用Json工具類JSON
- JDynamic:支援Json反序列化為Dynamic物件JSON物件
- openresty(nginx) redis 通用工具類RESTNginxRedis
- C++ 輕量級物件JSON序列化實現C++物件JSON
- Android 中的Json解析工具fastjson 、序列化、反序列化AndroidJSONAST
- [.net 物件導向程式設計進階] (11) 序列化(Serialization)(三) 通過介面 IXmlSerializable 實現XML序列化 及 通用XML類物件程式設計XML
- Json工具類----JacksonJSON
- Mybatis騷操作-通用查詢工具類MyBatis
- 類轉詞典 轉json 序列化 魔術方法JSON
- C#中實現JSON功能及物件的序列化和反序列化C#JSON物件
- XML轉化為json工具類XMLJSON
- 物件序列化(序列化)物件
- 序列化: 一個老傢伙的鹹魚翻身(Java物件、XML、JSON、反序列化)Java物件XMLJSON
- Json序列化之.NET開源類庫Newtonsoft.Json的研究JSON
- JSON繼承JsonConverter序列化與反序列化重寫類屬性JSON繼承
- 常見物件-Arrays工具類物件
- JSON-B:簡化 JSON 序列化和反序列化JSON
- 什麼是序列化?物件和類的區別?物件
- Java讀取Json檔案工具類JavaJSON
- 基於protostuff的序列化工具類開發
- [.net 物件導向程式設計進階] (12) 序列化(Serialization)(四) 快速掌握JSON的序列化和反序列化物件程式設計JSON
- C# 中使物件序列化/反序列化 Json 支援使用派生型別以及泛型的方式C#物件JSON型別泛型
- Flutter中JSON序列化與反序列化FlutterJSON
- C#序列化和反序列化(json)C#JSON
- C# 序列化與反序列化jsonC#JSON
- Kotlin Json 序列化KotlinJSON
- 七牛雲java(服務端)通用工具類Java服務端