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 }
  • 相关阅读:
    SQL中的全局变量和局部变量(@@/@)
    C# 委托Delegate(一) 基础介绍&用法
    internal in C#
    用代码块在new对象时set属性
    MySql与对应的Java的时间类型
    快速获取当天0点0分0秒(00:00:00)
    IsNullOrWhiteSpace与IsNullOrEmpty
    svn服务器配置 for mac
    CornerStone配置SVN,HTTP及SVN简单使用说明
    svn配置
  • 原文地址:https://www.cnblogs.com/cloudwind/p/2779257.html
Copyright © 2011-2022 走看看