栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java的JSON格式转换库GSON的初步使用笔记

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java的JSON格式转换库GSON的初步使用笔记

现在已经有一些能将Java对象转换成JSON的开源项目了。但是大多数项目都要求你在类文件中加入Java注解,而当你无法改动源代码的时候这是无法做到的。并且它们也不支持Java泛型。但是Gson却将这两点作为自己非常重要的设计目标。

特点:

  • 使用toJson()和fromJson()方法,就可以非常容易的完成Java对象到JSON的相互转换。
  • 能将预先存在的无法修改的对象与JSON互相转换。
  • 支持Java泛型的使用。
  • 允许对象的个性化表达形式(representation)。
  • 支持各种复杂(拥有深继承层次结构和大量使用泛型类型)的对象。

Gson的应用主要为toJson与fromJson两个转换方法,而在使用这种对象转换之前需先创建好对象的类以及其成员才能成功的将JSON字符串成功转换成相对应的对象。

public class GsonUtil {
  public static Gson gson;
  
  public static final int JSON_JAVABEAN=0x10001;
  
  public static final int JSON_LIST=0x10002;
  
  public static final int JSON_MAP=0x10004;

  
  public static String convertObject2Json(Object object) {   
    gson=new Gson();      
    return gson.toJson(object);
  } 
  
  public static Object convertJson2Object(InputStream inputStream,ClassjavaBean ,int convertFlag) {    
    gson=new Gson();  
    Object object=null;
//   String json=inputStream2String(inputStream);
    BufferedReader reader=intputStream2BufferedReader(inputStream);  
    Type type=getType(javaBean,convertFlag);  
    object=gson.fromJson(reader,type);     
    return object;
  }
  
  private static Type getType(Class javaBean,int convertFlag) {   
    Type type=null;
    switch (convertFlag) {
    case JSON_LIST:
      if (javaBean.equals(News.class)) {//Json转List泛型
 type=new TypeToken>(){}.getType();
      }
      break;
    case JSON_MAP:
      if (javaBean.equals(News.class)) {//Json转Map泛型
 type=new TypeToken>(){}.getType();
      }
      break;    
    case JSON_JAVABEAN://Json转JavaBean
      type=javaBean;
      break;    
    }   
    return type; 
  }
  
  private static BufferedReader intputStream2BufferedReader(InputStream inputStream) {   
    return new BufferedReader(new InputStreamReader(inputStream));  
  }
}

代码分析:

在将Json转换成对象的时候,上面代码是从服务器端获取输入流,然后将输入流封装成BufferedReader对象,然后通过fromJson()方法将Json转换成Java对象。

Gson的fromJson()方法的第一个参数支持String、JsonElement和Reader类型的参数,可以根据需要进行选择。fromJson()方法的第二个参数支持Type和Class类型的参数,当将Json转成JavaBean时可以使用Class参数,也就是用对应JavaBean的JavaBean.calss作为第二个参数。当需要将Json转出成List泛型,Map泛型的时候需要采用TypeToken将第二个参数转换成Type类型(TypeToken是gson提供的数据类型转换器,可以支持各种数据集合类型转换)。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/149765.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号