`

gson

    博客分类:
  • json
阅读更多
1.简单的处理list和map

Java代码
Gson gson = new Gson();   
List testList = new ArrayList();   
testList.add("first");   
testList.add("second");   
String listToJson = gson.toJson(testList);   
System.out.println(listToJson);        
//prints ["first","second"]   
  
Map testMap = new HashMap();   
testMap.put("id", "id.first");   
testMap.put("name","name.second");   
String mapToJson = gson.toJson(testMap);   
System.out.println(mapToJson);     
//prints {"id":"id.first","name":"name.second"}  
Gson gson = new Gson();
List testList = new ArrayList();
testList.add("first");
testList.add("second");
String listToJson = gson.toJson(testList);
System.out.println(listToJson);
//prints ["first","second"]
Map testMap = new HashMap();
testMap.put("id", "id.first");
testMap.put("name","name.second");
String mapToJson = gson.toJson(testMap);
System.out.println(mapToJson);
//prints {"id":"id.first","name":"name.second"} 2.处理带泛型的集合

Java代码
List<TestBean> testBeanList = new ArrayList<TestBean>();   
TestBean testBean = new TestBean();   
testBean.setId("id");   
testBean.setName("name");   
testBeanList.add(testBean);   
List<TestBean> testBeanList = new ArrayList<TestBean>();
TestBean testBean = new TestBean();
testBean.setId("id");
testBean.setName("name");
testBeanList.add(testBean);
Java代码
java.lang.reflect.Type type = new com.google.gson.reflect.TypeToken<List<TestBean>>() {   
}.getType();   
String beanListToJson = gson.toJson(testBeanList,type);   
System.out.println(beanListToJson);   
//prints [{"id":"id","name":"name"}]   
  
List<TestBean> testBeanListFromJson = gson.fromJson(beanListToJson, type);   
System.out.println(testBeanListFromJson);   
//prints [TestBean@1ea5671[id=id,name=name,birthday=<null>]]  
java.lang.reflect.Type type = new com.google.gson.reflect.TypeToken<List<TestBean>>() {
}.getType();
String beanListToJson = gson.toJson(testBeanList,type);
System.out.println(beanListToJson);
//prints [{"id":"id","name":"name"}]
List<TestBean> testBeanListFromJson = gson.fromJson(beanListToJson, type);
System.out.println(testBeanListFromJson);
//prints [TestBean@1ea5671[id=id,name=name,birthday=<null>]]map等其他集合类型同上





3.Date类型转化



先写工具类



Java代码
import java.lang.reflect.Type;   
  
import com.google.gson.JsonDeserializationContext;   
import com.google.gson.JsonDeserializer;   
import com.google.gson.JsonElement;   
import com.google.gson.JsonParseException;   
  
public class UtilDateDeserializer implements JsonDeserializer<java.util.Date> {   
  
    @Override  
    public java.util.Date deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context)   
            throws JsonParseException {   
        return new java.util.Date(json.getAsJsonPrimitive().getAsLong());   
    }   
}  
import java.lang.reflect.Type;
import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonDeserializer;
import com.google.gson.JsonElement;
import com.google.gson.JsonParseException;
public class UtilDateDeserializer implements JsonDeserializer<java.util.Date> {
@Override
public java.util.Date deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context)
throws JsonParseException {
return new java.util.Date(json.getAsJsonPrimitive().getAsLong());
}
}

Java代码
import java.lang.reflect.Type;   
  
import com.google.gson.JsonElement;   
import com.google.gson.JsonPrimitive;   
import com.google.gson.JsonSerializationContext;   
import com.google.gson.JsonSerializer;   
  
public class UtilDateSerializer implements JsonSerializer<java.util.Date> {   
  
    @Override  
    public JsonElement serialize(java.util.Date src, Type typeOfSrc,      
            JsonSerializationContext context) {      
        return new JsonPrimitive(src.getTime());      
    }      
  
}  
import java.lang.reflect.Type;
import com.google.gson.JsonElement;
import com.google.gson.JsonPrimitive;
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;
public class UtilDateSerializer implements JsonSerializer<java.util.Date> {
@Override
public JsonElement serialize(java.util.Date src, Type typeOfSrc,
JsonSerializationContext context) {
return new JsonPrimitive(src.getTime());
}
}

Java代码
/**  
     * 序列化方法  
     * @param bean  
     * @param type  
     * @return  
     */  
    public static String bean2json(Object bean, Type type) {   
        Gson gson = new GsonBuilder().registerTypeAdapter(java.util.Date.class, new UtilDateSerializer())   
                .setDateFormat(DateFormat.LONG).create();   
        return gson.toJson(bean);   
    }   
  
    /**  
     * 反序列化方法  
     * @param json  
     * @param type  
     * @return  
     */  
    public static <T> T json2bean(String json, Type type) {   
        Gson gson = new GsonBuilder().registerTypeAdapter(java.util.Date.class, new UtilDateDeserializer())   
                .setDateFormat(DateFormat.LONG).create();   
        return gson.fromJson(json, type);   
    }  
/**
* 序列化方法
* @param bean
* @param type
* @return
*/
public static String bean2json(Object bean, Type type) {
Gson gson = new GsonBuilder().registerTypeAdapter(java.util.Date.class, new UtilDateSerializer())
.setDateFormat(DateFormat.LONG).create();
return gson.toJson(bean);
}
/**
* 反序列化方法
* @param json
* @param type
* @return
*/
public static <T> T json2bean(String json, Type type) {
Gson gson = new GsonBuilder().registerTypeAdapter(java.util.Date.class, new UtilDateDeserializer())
.setDateFormat(DateFormat.LONG).create();
return gson.fromJson(json, type);
}



现在开始测试



Java代码
List<TestBean> testBeanList = new ArrayList<TestBean>();   
TestBean testBean = new TestBean();   
testBean.setId("id");   
testBean.setName("name");   
testBean.setBirthday(new java.util.Date());   
testBeanList.add(testBean);   
  
java.lang.reflect.Type type = new com.google.gson.reflect.TypeToken<List<TestBean>>() {   
}.getType();   
String beanListToJson = bean2json(testBeanList, type);   
System.out.println("beanListToJson:" + beanListToJson);   
//prints [{"id":"id","name":"name","birthday":1256531559390}]   
  
List<TestBean> testBeanListFromJson = json2bean(beanListToJson, type);   
System.out.println(testBeanListFromJson);   
//prints [TestBean@77a7f9[id=id,name=name,birthday=Mon Oct 26 12:39:05 CST 2009]]  
List<TestBean> testBeanList = new ArrayList<TestBean>();
TestBean testBean = new TestBean();
testBean.setId("id");
testBean.setName("name");
testBean.setBirthday(new java.util.Date());
testBeanList.add(testBean);
java.lang.reflect.Type type = new com.google.gson.reflect.TypeToken<List<TestBean>>() {
}.getType();
String beanListToJson = bean2json(testBeanList, type);
System.out.println("beanListToJson:" + beanListToJson);
//prints [{"id":"id","name":"name","birthday":1256531559390}]
List<TestBean> testBeanListFromJson = json2bean(beanListToJson, type);
System.out.println(testBeanListFromJson);
//prints [TestBean@77a7f9[id=id,name=name,birthday=Mon Oct 26 12:39:05 CST 2009]]



后记:对于java.sql.Date的转化同上类似,写两个类用于其序列化和反序列化即可SQLDateDeserializer implements JsonDeserializer<java.sql.Date>

SQLDateSerializer implements JsonSerializer<java.sql.Date>



分享到:
评论

相关推荐

    om.google.gson.Gson Gson maven依赖

    Gson是Google开发的一款Java语言编写的库,用于在Java对象和JSON数据之间进行映射。这个库使得Java对象可以轻松地序列化成JSON格式,同时也可以从JSON字符串反序列化回Java对象。在Java开发中,Gson库非常常见,特别...

    com.google.gson.Gson 2.8.1 2.8.2 jar包 gson

    Gson是Google开发的一款强大的Java库,用于在Java对象和JSON数据之间进行映射。它的全称是Google Gson,主要用于将Java对象转换为JSON格式的字符串,也可以将JSON字符串反序列化为对应的Java对象。在Java开发中,...

    GSON JAR包 最新包和历史包 gson-2.10.1

    介绍:Gson is a Java library that can be used to convert Java Objects into their JSON representation. It can also be used to convert a JSON string to an equivalent Java object. 压缩包里有以下文件: ...

    json解析 gson fastjson

    使用Gson,你可以通过`Gson().toJson()`方法将Java对象转化为JSON字符串,通过`new Gson().fromJson()`方法将JSON字符串反序列化为Java对象。 例如: ```java Person person = new Person("John", "Doe"); String ...

    com.google.gson.Gson(4个jar包)莫名被加了积分,回归0

    在你的问题中,你提到“莫名被加了积分,回归0”,这可能指的是某个版本更新或者配置更改导致了Gson库在你的项目中的行为发生了异常,可能是错误地引入了额外的功能或依赖,或者是错误地覆盖了原有的设置,使得Gson...

    gson jar包下载

    Gson,全称为Google Simple JSON,是Google提供的一款开源库,用于在Java对象和JSON数据之间进行映射。这个库使得Java开发者能够轻松地将JSON字符串转换为等效的Java对象,反之亦然。在Java应用程序中,Gson库特别...

    gson-2.8.5版本的jar包

    GSON简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。 Gson是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库。可以将一个JSON字符串...

    Gson-2.8.1的官方jar包合集【gson-2.8.1.jar,gson-2.8.1-sources.jar】

    Gson是Google开发的一款强大的Java库,用于将Java对象转换为JSON格式的字符串,以及将JSON数据解析回等效的Java对象。这个压缩包包含了Gson库的版本2.8.1,它提供了两个主要的组件:`gson-2.8.1.jar`和`gson-2.8.1-...

    gson-2.8.0-API文档-中文版.zip

    赠送jar包:gson-2.8.0.jar; 赠送原API文档:gson-2.8.0-javadoc.jar; 赠送源代码:gson-2.8.0-sources.jar; 赠送Maven依赖信息文件:gson-2.8.0.pom; 包含翻译后的API文档:gson-2.8.0-javadoc-API文档-中文...

    gson-2.8.6-API文档-中文版.zip

    赠送jar包:gson-2.8.6.jar; 赠送原API文档:gson-2.8.6-javadoc.jar; 赠送源代码:gson-2.8.6-sources.jar; 赠送Maven依赖信息文件:gson-2.8.6.pom; 包含翻译后的API文档:gson-2.8.6-javadoc-API文档-中文...

    gson-2.8.6.jar下载

    gson-2.8.6.jar下载,gson是Google开发的一款优秀的Java JSON解析库。它可以将Java对象转换成JSON字符串,也可以将JSON字符串转换成Java对象。gson库简单易用,性能良好,所以很受欢迎,被广泛应用于Android和Java项目中...

    gson-2.8.9-API文档-中文版.zip

    赠送jar包:gson-2.8.9.jar; 赠送原API文档:gson-2.8.9-javadoc.jar; 赠送源代码:gson-2.8.9-sources.jar; 赠送Maven依赖信息文件:gson-2.8.9.pom; 包含翻译后的API文档:gson-2.8.9-javadoc-API文档-中文...

    gson-2.2.4.jar下载

    Gson是Google开发的一款强大的Java库,用于在Java对象和JSON数据之间进行映射。它的全名是Google Simple JSON,其版本2.2.4是一个非常稳定且广泛使用的版本,适用于许多项目。在这个讨论中,我们将深入探讨Gson库的...

    com.google.gson.Gson.jar

    json我们在网络请求中经常用到,最近最火的微信小程序开发中... 就会报错,因为对于嵌套类型的json它是解释不出来的,这时就需要用到com.google.gson.Gson.jar了。资源中提供了jar包与代码示例,一句代码解决您的问题。

    google-gson-2.2.4.zip

    谷歌的Gson库是Java开发人员用来在JSON和Java对象之间进行序列化和反序列化的强大工具。这个"google-gson-2.2.4.zip"压缩包包含了Gson库的2.2.4版本,这是一个广泛使用的稳定版本,适用于各种项目需求。Gson库允许...

    Gson的2.2.4jar

    Gson是Google推出的一款强大的Java库,主要用于在Java对象与JSON数据之间进行相互转换。它的全称是Google Simple JSON,自2008年发布以来,已经成为了Java开发者处理JSON数据的一个常用工具,尤其是在Android开发中...

    google-gson-2.2.4

    "google-gson-2.2.4" 是Google开发的一个Java库,主要用于将Java对象转换为JSON(JavaScript Object Notation)格式的字符串,以及将JSON数据解析回等效的Java对象。这个版本号"2.2.4"代表了Gson库的一个稳定发行版...

    Google发布的强大的gson包

    谷歌的Gson库是一款高效的Java库,用于在Java对象和JSON数据之间进行映射。它的主要功能是将Java对象转换为对应的JSON字符串,同时也可以将JSON文本解析为等效的Java对象。Gson 2.1是这个库的一个重要版本,它在性能...

    gson各个版本 jar 包下载

    Gson JAR包是Google推出的一款功能强大的Java库,它主要用于在Java对象和JSON格式数据之间进行转换。Gson库提供了简单而直观的API,使得开发者可以轻松地将Java对象序列化为JSON格式的字符串,或者将JSON字符串反...

    gson-2.8.6.zip

    `gson-2.8.6.zip`是Gson库的版本2.8.6的压缩包文件,其中包含的主要文件是`gson-2.8.6.jar`,这是一个Java Archive (JAR) 文件,用于在Java环境中运行Gson库。 **Gson库的基本概念:** 1. **JSON(JavaScript ...

Global site tag (gtag.js) - Google Analytics