6 package com.qbskj.project.util; 7 8 import java.io.IOException; 9 import java.io.Writer; 10 11 import org.springframework.util.Assert; 12 13 import com.fasterxml.jackson.core.JsonGenerationException; 14 import com.fasterxml.jackson.core.type.TypeReference; 15 import com.fasterxml.jackson.databind.JavaType; 16 import com.fasterxml.jackson.databind.JsonMappingException; 17 import com.fasterxml.jackson.databind.ObjectMapper; 18 19 /** 20 * Utils - JSON 21 */ 22 public final class JsonUtils { 23 24 /** ObjectMapper */ 25 private static ObjectMapper mapper = new ObjectMapper(); 26 27 /** 28 * 不可实例化 29 */ 30 private JsonUtils() { 31 } 32 33 /** 34 * 将对象转换为JSON字符串 35 * 36 * @param value 37 * 对象 38 * @return JSOn字符串 39 */ 40 public static String toJson(Object value) { 41 try { 42 return mapper.writeValueAsString(value); 43 } catch (Exception e) { 44 e.printStackTrace(); 45 } 46 return null; 47 } 48 49 /** 50 * 将JSON字符串转换为对象 51 * 52 * @param json 53 * JSON字符串 54 * @param valueType 55 * 对象类型 56 * @return 对象 57 */ 58 public static <T> T toObject(String json, Class<T> valueType) { 59 Assert.hasText(json, ""); 60 Assert.notNull(valueType, ""); 61 try { 62 return mapper.readValue(json, valueType); 63 } catch (Exception e) { 64 e.printStackTrace(); 65 } 66 return null; 67 } 68 69 /** 70 * 将JSON字符串转换为对象 71 * 72 * @param json 73 * JSON字符串 74 * @param typeReference 75 * 对象类型 76 * @return 对象 77 */ 78 public static <T> T toObject(String json, TypeReference<?> typeReference) { 79 Assert.hasText(json, ""); 80 Assert.notNull(typeReference, ""); 81 try { 82 return mapper.readValue(json, typeReference); 83 } catch (Exception e) { 84 e.printStackTrace(); 85 } 86 return null; 87 } 88 89 /** 90 * 将JSON字符串转换为对象 91 * 92 * @param json 93 * JSON字符串 94 * @param javaType 95 * 对象类型 96 * @return 对象 97 */ 98 public static <T> T toObject(String json, JavaType javaType) { 99 Assert.hasText(json, ""); 100 Assert.notNull(javaType, ""); 101 try { 102 return mapper.readValue(json, javaType); 103 } catch (Exception e) { 104 e.printStackTrace(); 105 } 106 return null; 107 } 108 109 /** 110 * 将对象转换为JSON流 111 * 112 * @param writer 113 * writer 114 * @param value 115 * 对象 116 */ 117 public static void writeValue(Writer writer, Object value) { 118 try { 119 mapper.writeValue(writer, value); 120 } catch (JsonGenerationException e) { 121 e.printStackTrace(); 122 } catch (JsonMappingException e) { 123 e.printStackTrace(); 124 } catch (IOException e) { 125 e.printStackTrace(); 126 } 127 } 128 129 }