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

  public static final Double SINCE_VERSION_11 = 1.1d;

  /** {@code Google Gson} 的 {@literal @Since} 注解常用的版本号常量 - {@code 1.2}。 */

  public static final Double SINCE_VERSION_12 = 1.2d;

  /**

  * 将给定的目标对象根据指定的条件参数转换成 {@code JSON} 格式的字符串。

  * <p />

  * <strong>该方法转换发生错误时,不会抛出任何异常。若发生错误时,曾通对象返回 <code>"{}"</code>;

  * 集合或数组对象返回 <code>"[]"</code></strong>

  *

  * @param target 目标对象。

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

  * @param isSerializeNulls 是否序列化 {@code null} 值字段。

  * @param version 字段的版本号注解。

  * @param datePattern 日期字段的格式化模式。

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

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

  */

  public static String toJson(Object target, Type targetType, boolean isSerializeNulls,

  Double version, String datePattern, boolean excludesFieldsWithoutExpose) {

  if (target == null)

  return EMPTY_JSON;

  GsonBuilder builder = new GsonBuilder();

  if (isSerializeNulls)

  builder.serializeNulls();

  if (version != null)

  builder.setVersion(version.doubleValue());

  if (isEmpty(datePattern))

  datePattern = DEFAULT_DATE_PATTERN;

  builder.setDateFormat(datePattern);

  if (excludesFieldsWithoutExpose)

  builder.excludeFieldsWithoutExposeAnnotation();

  String result = EMPTY;

  Gson gson = builder.create();

  try {

  if (targetType != null) {

  result = gson.toJson(target, targetType);

  } else {

  result = gson.toJson(target);

  }

  } catch (Exception ex) {

  log.warn("目标对象 " + target.getClass().getName() + " 转换 JSON 字符串时,发生异常!", ex);

  if (target instanceof Collection || target instanceof Iterator

  || target instanceof Enumeration || target.getClass().isArray()) {

  result = EMPTY_JSON_ARRAY;

  } else

  result = EMPTY_JSON;

  }

  return result;

  }

  /**

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

  * <ul>

  * <li>该方法只会转换标有 {@literal @Expose} 注解的字段;</li>

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

  * <li>该方法会转换所有未标注或已标注 {@literal @Since} 的字段;</li>

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

  * </ul>

  *

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

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

  */

  public static String toJson(Object target) {

  return toJson(target, null, false, null, null, true);

  }

  /**

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

  * <ul>

  * <li>该方法只会转换标有 {@literal @Expose} 注解的字段;</li>

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

  * <li>该方法会转换所有未标注或已标注 {@literal @Since} 的字段;</li>

  * </ul>

  *

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

  * @param datePattern 日期字段的格式化模式。

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

  */

  public static String toJson(Object target, String datePattern) {

  return toJson(target, null, false, null, datePattern, true);

  }

  /**

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

  * <ul>

  * <li>该方法只会转换标有 {@literal @Expose} 注解的字段;</li>

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

  * <li>该方法转换时使用默认的 日期/时间 格式化模式 - {@code y

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

    免费论文

    原创论文

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