JsonUtils

 1 package com.hikvision.cloud.iep.common.util;
 2 
 3 import java.util.Map;
 4 import org.slf4j.Logger;
 5 import org.slf4j.LoggerFactory;
 6 import com.fasterxml.jackson.core.type.TypeReference;
 7 import com.fasterxml.jackson.databind.ObjectMapper;
 8 import com.hikvision.cloud.iep.common.json.CustomObjectMapper;
 9 
10 
11 /**
12  * JSON 工具类
13  *
14  * @author huangyong
15  * @since 1.0.0
16  */
17 public final class JsonUtil {
18 
19     private static Logger logger = LoggerFactory.getLogger(JsonUtil.class);
20     
21     private static ObjectMapper objectMapper = new CustomObjectMapper();
22 
23     /**
24      * 将 POJO 对象转为 JSON 字符串
25      */
26     public static <T> String toJson(T pojo) {
27         String json;
28         try {
29             json = objectMapper.writeValueAsString(pojo);
30         } catch (Exception e) {
31             throw new RuntimeException("转换json格式异常");
32         }
33         return json;
34     }
35 
36     /**
37      * 将 JSON 字符串转为 POJO 对象
38      */
39     public static <T> T fromJson(String json, Class<T> type) {
40         T pojo  =null;
41         try {
42             pojo = objectMapper.readValue(json, type);
43         } catch (Exception e) {
44             logger.error("json格式错误"+json +"***type:***" +type);
45         }
46         return pojo;
47     }
48     
49     /**
50      * JSON串转换为Java泛型对象,可以是各种类型,此方法最为强大。用法看测试用例。
51      * @param <T>
52      * @param jsonString JSON字符串
53      * @param tr TypeReference,例如: new TypeReference< List<FamousUser> >(){}
54      * @return List对象列表
55      */
56     public static <T> T toCollection(String jsonStr, TypeReference<T> typeReference) {
57         try {
58             return objectMapper.readValue(jsonStr, typeReference);
59         } catch (Exception e) {
60              throw new RuntimeException("json格式错误"+jsonStr);
61         }
62     }
63     
64     @SuppressWarnings("unchecked")
65     public static Map<String, Object> json2map(String jsonStr) {
66         try {
67         
68             return objectMapper.readValue(jsonStr, Map.class);
69         } catch (Exception e ) {
70              throw new RuntimeException("json格式错误"+jsonStr);
71         } 
72     }
73     
74     @SuppressWarnings("rawtypes")
75     public static <T> T map2pojo(Map map, Class<T> clazz) {
76         return objectMapper.convertValue(map, clazz);
77     }
78 }

 

转载于:https://www.cnblogs.com/xjatj/p/9887359.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值