分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

JsonUtil ?jakson工具类

发布时间:2023-09-06 01:33责任编辑:彭小芳关键词:暂无标签
package com.mmall.util;import com.google.common.collect.Lists;import com.mmall.pojo.Category;import com.mmall.pojo.TestPojo;import com.mmall.pojo.User;import lombok.extern.slf4j.Slf4j;import org.apache.commons.lang.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;import java.util.Date;import java.util.HashMap;import java.util.List;import java.util.Map;/** * Created by geely */@Slf4jpublic class JsonUtil { ???private static ObjectMapper objectMapper = new ObjectMapper(); ???static{ ???????//对象的所有字段全部列入 ???????objectMapper.setSerializationInclusion(Inclusion.ALWAYS); ???????//取消默认转换timestamps形式 ???????objectMapper.configure(SerializationConfig.Feature.WRITE_DATES_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); ???} ???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; ???????} ???} ???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; ???????} ???} ???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; ???????} ???} ???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 (Exception e) { ???????????log.warn("Parse String to Object error",e); ???????????return null; ???????} ???} ???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 (Exception e) { ???????????log.warn("Parse String to Object error",e); ???????????return null; ???????} ???} ???public static void main(String[] args) { ???????TestPojo testPojo = new TestPojo(); ???????testPojo.setName("Geely"); ???????testPojo.setId(666); ???????//{"name":"Geely","id":666} ???????String json = "{\"name\":\"Geely\",\"color\":\"blue\",\"id\":666}"; ???????TestPojo testPojoObject = JsonUtil.string2Obj(json,TestPojo.class);// ???????String testPojoJson = JsonUtil.obj2String(testPojo);// ???????log.info("testPojoJson:{}",testPojoJson); ???????log.info("end");// ???????User user = new User();// ???????user.setId(2);// ???????user.setEmail("geely@happymmall.com");// ???????user.setCreateTime(new Date());// ???????String userJsonPretty = JsonUtil.obj2StringPretty(user);// ???????log.info("userJson:{}",userJsonPretty);// ???????User u2 = new User();// ???????u2.setId(2);// ???????u2.setEmail("geelyu2@happymmall.com");//////// ???????String user1Json = JsonUtil.obj2String(u1);//// ???????String user1JsonPretty = JsonUtil.obj2StringPretty(u1);//// ???????log.info("user1Json:{}",user1Json);//// ???????log.info("user1JsonPretty:{}",user1JsonPretty);////// ???????User user = JsonUtil.string2Obj(user1Json,User.class);////// ???????List<User> userList = Lists.newArrayList();// ???????userList.add(u1);// ???????userList.add(u2);//// ???????String userListStr = JsonUtil.obj2StringPretty(userList);//// ???????log.info("==================");//// ???????log.info(userListStr);////// ???????List<User> userListObj1 = JsonUtil.string2Obj(userListStr, new TypeReference<List<User>>() {// ???????});////// ???????List<User> userListObj2 = JsonUtil.string2Obj(userListStr,List.class,User.class); ???????System.out.println("end"); ???}}

JsonUtil ?jakson工具类

原文地址:https://www.cnblogs.com/luozhiyun/p/8168759.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved