zoukankan      html  css  js  c++  java
  • json与对象转换的工具集合类

     1 package com.myhexin.core.mapping;
     2 
     3 import java.io.IOException;
     4 import java.util.List;
     5 
     6 import org.codehaus.jackson.JsonGenerationException;
     7 import org.codehaus.jackson.JsonParseException;
     8 import org.codehaus.jackson.map.JsonMappingException;
     9 import org.codehaus.jackson.map.ObjectMapper;
    10 import org.codehaus.jackson.type.TypeReference;
    11 import org.slf4j.Logger;
    12 import org.slf4j.LoggerFactory;
    13 
    14 /**
    15  * 一些json与对象转换的工具集合类
    16  * 
    17  * 
    18  */
    19 public class JsonUtils {
    20 
    21     private static Logger logger = LoggerFactory.getLogger(JsonUtils.class);
    22 
    23     private static final ObjectMapper objectMapper = new ObjectMapper();
    24 
    25     private JsonUtils(){}
    26     public static ObjectMapper getInstance() {  
    27             return objectMapper;  
    28     }  
    29 
    30     /**
    31      * 使用Jackson 数据绑定 将对象转换为 json字符串
    32      * 
    33      * 还可以 直接使用 JsonUtils.getInstance().writeValueAsString(Object obj)方式 
    34      * @param obj
    35      * @return
    36      */
    37     public static String toJsonString(Object obj) {
    38         try {
    39             return objectMapper.writeValueAsString(obj);
    40         } catch (JsonGenerationException e) {
    41             logger.error("转换为json字符串失败" + e.toString());
    42         } catch (JsonMappingException e) {
    43             logger.error("转换为json字符串失败" + e.toString());
    44         } catch (IOException e) {
    45             logger.error("转换为json字符串失败" + e.toString());
    46         }
    47         return null;
    48     }
    49 
    50     /**
    51      * json字符串转化为 JavaBean
    52      * 
    53      * 还可以直接JsonUtils.getInstance().readValue(String content,Class valueType)用这种方式
    54      * @param <T>
    55      * @param content
    56      * @param valueType
    57      * @return
    58      */
    59     public static <T> T toJavaBean(String content, Class<T> valueType) {
    60         try {
    61             return objectMapper.readValue(content, valueType);
    62         } catch (JsonParseException e) {
    63             logger.error("json字符串转化为 javabean失败" + e.toString());
    64         } catch (JsonMappingException e) {
    65             logger.error("json字符串转化为 javabean失败" + e.toString());
    66         } catch (IOException e) {
    67             logger.error("json字符串转化为 javabean失败" + e.toString());
    68         }
    69         return null;
    70     }
    71 
    72     /**
    73      * json字符串转化为list
    74      * 
    75      * 还可以 直接使用  JsonUtils.getInstance().readValue(String content, new TypeReference<List<T>>(){})方式
    76      * @param <T>
    77      * @param content
    78      * @param valueType
    79      * @return
    80      * @throws IOException 
    81      */
    82     public static <T> List<T> toJavaBeanList(String content, TypeReference<List<T>>  typeReference) throws IOException {
    83         try {
    84             return objectMapper.readValue(content, typeReference);
    85         } catch (JsonParseException e) {
    86             logger.error("json字符串转化为 list失败,原因:" + e.toString());
    87             throw new RuntimeException("json字符串转化为 list失败");
    88         } catch (JsonMappingException e) {
    89             logger.error("json字符串转化为 list失败,原因" + e.toString());
    90             throw new JsonMappingException("json字符串转化为 list失败");
    91         } catch (IOException e) {
    92             logger.error("json字符串转化为 list失败,原因" + e.toString());
    93             throw new IOException("json字符串转化为 list失败");
    94         }
    95     }
    96 
    97 }
  • 相关阅读:
    git查日志命令
    使用git把本地目录传到远程仓库
    本地ssh设置多个git项目访问
    php的phar是什么?
    .ssh免密登录问题解决
    idea配置tomcat时,运行按钮灰色禁用状态
    idea快捷键main,print,代码提示
    windows安装hadoop找不到JAVA_HOME
    spring boot 启动时找不到主类
    jquery 删除自己
  • 原文地址:https://www.cnblogs.com/cloudwind/p/2779257.html
Copyright © 2011-2022 走看看