网站导航免费论文 原创论文 论文搜索 作业答案 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 设计资源 > 便捷工具 > 正文
使用Gson的一个便捷工具类
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: Admin 发布时间: 09/11/11
- {@code yyyy-MM-dd HH:mm:ss SSS};</li>

  * </ul>

  *

  * @param target 要转换成 {@code JSON} 的目标对象。

  * @param targetType 目标对象的类型。

  * @param excludesFieldsWithoutExpose 是否排除未标注 {@literal @Expose} 注解的字段。

  * @return 目标对象的 {@code JSON} 格式的字符串。

  */

  public static String toJson(Object target, Type targetType, boolean excludesFieldsWithoutExpose) {

  return toJson(target, targetType, false, null, null, excludesFieldsWithoutExpose);

  }

  /**

  * 将给定的目标对象转换成 {@code JSON} 格式的字符串。<strong>此方法通常用来转换使用泛型的对象。</strong>

  * <ul>

  * <li>该方法不会转换 {@code null} 值字段;</li>

  * <li>该方法转换时使用默认的 日期/时间 格式化模式 - {@code yyyy-MM-dd HH:mm:ss SSS};</li>

  * </ul>

  *

  * @param target 要转换成 {@code JSON} 的目标对象。

  * @param targetType 目标对象的类型。

  * @param version 字段的版本号注解({@literal @Since})。

  * @param excludesFieldsWithoutExpose 是否排除未标注 {@literal @Expose} 注解的字段。

  * @return 目标对象的 {@code JSON} 格式的字符串。

  */

  public static String toJson(Object target, Type targetType, Double version,

  boolean excludesFieldsWithoutExpose) {

  return toJson(target, targetType, false, version, null, excludesFieldsWithoutExpose);

  }

  /**

  * 将给定的 {@code JSON} 字符串转换成指定的类型对象。

  *

  * @param <T> 要转换的目标类型。

  * @param json 给定的 {@code JSON} 字符串。

  * @param token {@code com.google.gson.reflect.TypeToken} 的类型指示类对象。

  * @param datePattern 日期格式模式。

  * @return 给定的 {@code JSON} 字符串表示的指定的类型对象。

  */

  public static <T> T fromJson(String json, TypeToken<T> token, String datePattern) {

  if (isEmpty(json)) {

  return null;

  }

  GsonBuilder builder = new GsonBuilder();

  if (isEmpty(datePattern)) {

  datePattern = DEFAULT_DATE_PATTERN;

  }

  Gson gson = builder.create();

  try {

  return gson.fromJson(json, token.getType());

  } catch (Exception ex) {

  log.error(json + " 无法转换为 " + token.getRawType().getName() + " 对象!", ex);

  return null;

  }

  }

  /**

  * 将给定的 {@code JSON} 字符串转换成指定的类型对象。

  *

  * @param <T> 要转换的目标类型。

  * @param json 给定的 {@code JSON} 字符串。

  * @param token {@code com.google.gson.reflect.TypeToken} 的类型指示类对象。

  * @return 给定的 {@code JSON} 字符串表示的指定的类型对象。

  */

  public static <T> T fromJson(String json, TypeToken<T> token) {

  return fromJson(json, token, null);

  }

  /**

  * 将给定的 {@code JSON} 字符串转换成指定的类型对象。<strong>此方法通常用来转换普通的 {@code JavaBean}

  * 对象。</strong>

  *

  * @param <T> 要转换的目标类型。

  * @param json 给定的 {@code JSON} 字符串。

  * @param clazz 要转换的目标类。

  * @param datePattern 日期格式模式。

  * @return 给定的 {@code JSON} 字符串表示的指定的类型对象。

  */

  public static <T> T fromJson(String json, Class<T> clazz, String datePattern) {

  if (isEmpty(json)) {

  return null;

  }

  GsonBuilder builder = new GsonBuilder();

  if (isEmpty(datePattern)) {

  datePattern = DEFAULT_DATE_PATTERN;

  }

  Gson gson = builder.create();

  try {

  return gson.fromJson(json, clazz);

  } catch (Exception ex) {

  log.error(json + " 无法转换为 " + clazz.getName() + " 对象!", ex);

  return null;

  }

  }

  /**

  * 将给定的 {@code JSON} 字符串转换成指定的类型对象。<strong>此方法通常用来转换普通的 {@code JavaBean}

  * 对象。</strong>

  *

  * @param <T> 要转换的目标类型。

  * @param json 给定的 {@code JSON} 字符串。

  * @param clazz 要转换的目标类。

  * @return 给定的 {@code JSON} 字符串表示的指定

  • 下一篇资讯: 定位魔术贴帮带
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 电话:013007313683 QQ:3710167 邮箱:Educs@163.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 Www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号