packageorg.tempuri;importjava.io.IOException;importjava.text.SimpleDateFormat;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;importjava.util.Map;importcom.fasterxml.jackson.annotation.JsonInclude.Include;importcom.fasterxml.jackson.core.JsonParseException;importcom.fasterxml.jackson.core.JsonProcessingException;importcom.fasterxml.jackson.databind.DeserializationFeature;importcom.fasterxml.jackson.databind.JsonMappingException;importcom.fasterxml.jackson.databind.ObjectMapper;importcom.fasterxml.jackson.databind.SerializationFeature;public classJsonUtils {private static ObjectMapper mapper = newObjectMapper();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字符串
*@paramdata
*@return
*/
public staticString transferToJson(Object data) {
String jsonStr= null;try{
jsonStr=mapper.writeValueAsString(data);
}catch(JsonProcessingException e) {
e.printStackTrace();
}returnjsonStr;
}/*** 对象转为byte数组
*@paramdata
*@return
*/
public static byte[] transferToBytes(Object data) {byte[] byteArr = null;try{
byteArr=mapper.writeValueAsBytes(data);
}catch(JsonProcessingException e) {
e.printStackTrace();
}returnbyteArr;
}/*** json字符串转为对象
*@paramstr
*@paramvalueType
*@return
*/
public static T jsonToTransfer(String str, ClassvalueType) {
T data= null;try{
data=mapper.readValue(str, valueType);
}catch(JsonParseException e) {
e.printStackTrace();
}catch(JsonMappingException e) {
e.printStackTrace();
}catch(IOException e) {
e.printStackTrace();
}returndata;
}/*** byte数组转为对象
*@parambyteArr
*@paramvalueType
*@return
*/
public static T bytesToTransfer(byte[] byteArr, ClassvalueType) {
T data= null;try{
data=mapper.readValue(byteArr, valueType);
}catch(JsonParseException e) {
e.printStackTrace();
}catch(JsonMappingException e) {
e.printStackTrace();
}catch(IOException e) {
e.printStackTrace();
}returndata;
}public static voidmain(String[] args) {
List> list = new ArrayList<>();
Map map1 = new HashMap<>();
map1.put("id", "1");
map1.put("name", "我是一");
list.add(map1);
Map map3 = new HashMap<>();
map3.put("id", "3");
map3.put("name", "我是三");
list.add(map3);
Map map2 = new HashMap<>();
map2.put("id", "2");
map2.put("name", "我是二");
list.add(map2);
System.out.println(list);
System.out.println(transferToJson(list));
}
}