zoukankan      html  css  js  c++  java
  • jackson的使用

    jackson工具类

      1 package com.booway.util;
      2 
      3 import java.util.List;
      4 
      5 import com.fasterxml.jackson.core.JsonProcessingException;
      6 import com.fasterxml.jackson.databind.JavaType;
      7 import com.fasterxml.jackson.databind.JsonNode;
      8 import com.fasterxml.jackson.databind.ObjectMapper;
      9 
     10 /**
     11  * json工具
     12  * @author wzh
     13  *
     14  */
     15 public class JsonUtils {
     16 
     17     private static final ObjectMapper MAPPER = new ObjectMapper();
     18 
     19     public static String objectToJson(Object data) {
     20         String string = null;
     21         try {
     22             string = MAPPER.writeValueAsString(data);
     23         } catch (JsonProcessingException e) {
     24             e.printStackTrace();
     25         }
     26         return string;
     27     }
     28     
     29     public static <T> T jsonToPojo(String jsonData, Class<T> beanType) {
     30         T t = null;
     31         try {
     32            t = MAPPER.readValue(jsonData, beanType);
     33             return t;
     34         } catch (Exception e) {
     35             e.printStackTrace();
     36         }
     37         return t;
     38     }
     39     
     40     public static <T>List<T> jsonToList(String jsonData, Class<?> target, Class<T> beanType) {
     41         
     42         JavaType javaType = MAPPER.getTypeFactory().constructParametricType(target, beanType);
     43         List<T> list = null;
     44         try {
     45             list = MAPPER.readValue(jsonData, javaType);
     46         } catch (Exception e) {
     47             e.printStackTrace();
     48         }
     49         return list;
     50     }
     51     
     52     private static BwjsResult build(boolean successful, String message, Object data) {
     53         
     54         return new BwjsResult(successful, message, data);
     55     }
     56     
     57     public static BwjsResult formatToPojo(String jsonData, Class<?> clazz) {
     58         try {
     59             if (clazz == null) {
     60                 return MAPPER.readValue(jsonData, BwjsResult.class);
     61             }
     62             JsonNode jsonNode = MAPPER.readTree(jsonData);
     63             JsonNode data = jsonNode.get("data");
     64             Object obj = null;
     65             if (clazz != null) {
     66                 if (data.isObject()) {
     67                     obj = MAPPER.readValue(data.traverse(), clazz);
     68                 } else if (data.isTextual()) {
     69                     obj = MAPPER.readValue(data.asText(), clazz);
     70                 }
     71             }
     72             return build(jsonNode.get("successful").booleanValue(), jsonNode.get("msg").asText(), obj);
     73         } catch (Exception e) {
     74             return null;
     75         }
     76     }
     77 
     78     public static BwjsResult format(String json) {
     79         try {
     80             return MAPPER.readValue(json, BwjsResult.class);
     81         } catch (Exception e) {
     82             e.printStackTrace();
     83         }
     84         return null;
     85     }
     86 
     87     public static BwjsResult formatToList(String jsonData, Class<?> clazz) {
     88         try {
     89             JsonNode jsonNode = MAPPER.readTree(jsonData);
     90             JsonNode data = jsonNode.get("data");
     91             Object obj = null;
     92             if (data.isArray() && data.size() > 0) {
     93                 obj = MAPPER.readValue(data.traverse(),
     94                         MAPPER.getTypeFactory().constructCollectionType(List.class, clazz));
     95             }
     96             return build(jsonNode.get("successful").booleanValue(), jsonNode.get("msg").asText(), obj);
     97         } catch (Exception e) {
     98             return null;
     99         }
    100     }
    101 }
  • 相关阅读:
    adb devices检测不到夜神模拟器
    adb devices检测不到夜神模拟器
    adb devices检测不到夜神模拟器
    epoll里面mmap释疑
    epoll里面mmap释疑
    epoll里面mmap释疑
    epoll里面mmap释疑
    Redis数据迁移的三个方法
    Redis数据迁移的三个方法
    MySQL:由USE DB堵塞故障引发的思考
  • 原文地址:https://www.cnblogs.com/honger/p/5847451.html
Copyright © 2011-2022 走看看