Json字符串與Object、List、Map的互轉(zhuǎn)工具類
更新時(shí)間:2018年12月10日 14:18:07 作者:執(zhí)筆記憶的空白
今天小編就為大家分享一篇關(guān)于Json字符串與Object、List、Map的互轉(zhuǎn)工具類,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
package com.cq2022.zago.base.util; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.StringWriter; import java.util.List; import java.util.Map; import org.codehaus.jackson.JsonFactory; import org.codehaus.jackson.JsonGenerationException; import org.codehaus.jackson.JsonGenerator; import org.codehaus.jackson.JsonNode; import org.codehaus.jackson.JsonParseException; import org.codehaus.jackson.map.JsonMappingException; import org.codehaus.jackson.map.ObjectMapper; import org.codehaus.jackson.map.SerializationConfig; import org.codehaus.jackson.map.annotate.JsonSerialize; import com.alibaba.fastjson.JSONArray; /** * Json工具類,實(shí)現(xiàn)JSON與Java Bean的互相轉(zhuǎn)換 */ public class JsonUtils { private static ObjectMapper objectMapper = new ObjectMapper(); private static JsonFactory jsonFactory = new JsonFactory(); static { objectMapper.configure(SerializationConfig.Feature.WRITE_NULL_MAP_VALUES, false); objectMapper.setSerializationInclusion(JsonSerialize.Inclusion.NON_NULL); } /** * 泛型返回,json字符串轉(zhuǎn)對象 * @param jsonAsString * @param pojoClass * @return * @throws JsonMappingException * @throws JsonParseException * @throws IOException */ public static <T> T fromJson(String jsonAsString, Class<T> pojoClass) throws JsonMappingException, JsonParseException, IOException { return objectMapper.readValue(jsonAsString, pojoClass); } public static <T> T fromJson(FileReader fr, Class<T> pojoClass) throws JsonParseException, IOException { return objectMapper.readValue(fr, pojoClass); } /** * Object對象轉(zhuǎn)json * @param pojo * @return * @throws JsonMappingException * @throws JsonGenerationException * @throws IOException */ public static String toJson(Object pojo) throws JsonMappingException, JsonGenerationException, IOException { return toJson(pojo, false); } public static String toJson(Object pojo, boolean prettyPrint) throws JsonMappingException, JsonGenerationException, IOException { StringWriter sw = new StringWriter(); JsonGenerator jg = jsonFactory.createJsonGenerator(sw); if (prettyPrint) { jg.useDefaultPrettyPrinter(); } objectMapper.writeValue(jg, pojo); return sw.toString(); } public static void toJson(Object pojo, FileWriter fw, boolean prettyPrint) throws JsonMappingException, JsonGenerationException, IOException { JsonGenerator jg = jsonFactory.createJsonGenerator(fw); if (prettyPrint) { jg.useDefaultPrettyPrinter(); } objectMapper.writeValue(jg, pojo); } /** * json字符串轉(zhuǎn)Map * @param jsonStr * @return * @throws IOException */ public static Map<String, Object> parseMap(String jsonStr) throws IOException { Map<String, Object> map = objectMapper.readValue(jsonStr, Map.class); return map; } public static JsonNode parse(String jsonStr) throws IOException { JsonNode node = null; node = objectMapper.readTree(jsonStr); return node; } public static ObjectMapper getObjectMapper() { return objectMapper; } /** * json字符串轉(zhuǎn) List對象 * @param str json字符串 * @param clazz 轉(zhuǎn)換的類型 * @return */ public static <T> List<T> fromListJson(String str,Class<T> clazz){ return JSONArray.parseArray(str, clazz); } }
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
相關(guān)文章
JavaWeb實(shí)現(xiàn)RSA+AES混合加密
RSA+AES的混合加密時(shí),AES用于給傳輸?shù)臄?shù)據(jù)加密,然后通過RSA給AES的秘鑰加密,本文就來詳細(xì)的介紹一下如何實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10java的Map集合中按value值進(jìn)行排序輸出的實(shí)例代碼
下面小編就為大家?guī)硪黄猨ava的Map集合中按value值進(jìn)行排序輸出的實(shí)例代碼。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-08-08java Spring松耦合高效應(yīng)用簡單實(shí)例分析
在Java項(xiàng)目,龐大的對象依賴關(guān)系將一直緊密耦合引起對象難以管理或修改。在這種情況下,可以使用Spring框架作為一個(gè)核心模塊輕松高效地管理所有的對象依賴。本文章向大家介紹Spring松耦合的實(shí)例,需要的朋友可以參考一下。2016-12-12詳解Java LinkedHashMap與HashMap的使用
這篇文章主要通過幾個(gè)示例為大家詳細(xì)介紹了Java中LinkedHashMap與HashMap的常見使用和概述,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-10-10Spring操作JdbcTemplate數(shù)據(jù)庫的方法學(xué)習(xí)
這篇文章主要為大家介紹了Spring操作JdbcTemplate數(shù)據(jù)庫方法學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05