`

使用Gson进行json数据转换(list to json 和json to list)

阅读更多

发现了google的gson,因为之前对于protocolbuf有一些了解,带着一些好奇心,我开始使用了gson。 
经过比较,gson和其他现有java json类库最大的不同时gson需要序列化得实体类不需要使用annotation来标识需要序列化得字段,同时gson又可以通过使用annotation来灵活配置需要序列化的字段。 
下面是一个简单的例子: 

Java代码  收藏代码
  1. public class Person {  
  2.   
  3.     private String name;  
  4.     private int age;  
  5.   
  6.     /** 
  7.      * @return the name 
  8.      */  
  9.     public String getName() {  
  10.         return name;  
  11.     }  
  12.   
  13.     /** 
  14.      * @param name the name to set 
  15.      */  
  16.     public void setName(String name) {  
  17.         this.name = name;  
  18.     }  
  19.   
  20.     /** 
  21.      * @return the age 
  22.      */  
  23.     public int getAge() {  
  24.         return age;  
  25.     }  
  26.   
  27.     /** 
  28.      * @param age the age to set 
  29.      */  
  30.     public void setAge(int age) {  
  31.         this.age = age;  
  32.     }  
  33.       
  34.     @Override  
  35.     public String toString()  
  36.     {  
  37.         return name + ":" +age;  
  38.     }  
  39. }  


实体很简单,两个字段,当然实体中的字段也可以是List或者Set类型的。 

Java代码  收藏代码
  1. Gson gson = new Gson();  
  2. List<Person> persons = new ArrayList<Person>();  
  3. for (int i = 0; i < 10; i++) {  
  4.      Person p = new Person();  
  5.      p.setName("name" + i);  
  6.      p.setAge(i * 5);  
  7.      persons.add(p);  
  8. }  
  9. String str = gson.toJson(persons);  



上面的代码重点是Gson对象,它提供了toJason()方法将对象转换成Json字符串,上面代码的str对象值为: 
[{"name":"name0","age":0},{"name":"name1","age":5},{"name":"name2","age":10},{"name":"name3","age":15},{"name":"name4","age":20},{"name":"name5","age":25},{"name":"name6","age":30},{"name":"name7","age":35},{"name":"name8","age":40},{"name":"name9","age":45}] 
很标准的json数据,很简单吧,呵呵。 
下面来看看gson的反序列化,Gson提供了fromJson()方法来实现从Json相关对象到java实体的方法。 
在日常应用中,我们一般都会碰到两种情况,转成单一实体对象和转换成对象列表或者其他结构。 
先来看第一种: 
比如json字符串为:[{"name":"name0","age":0}] 
代码: 

Java代码  收藏代码
  1. Person person = gson.fromJson(str, Person.class);  



提供两个参数,分别是json字符串以及需要转换对象的类型。 
第二种,转换成列表类型: 
代码: 

Java代码  收藏代码
  1. List<Person> ps = gson.fromJson(str, new TypeToken<List<Person>>(){}.getType());  
  2. for(int i = 0; i < ps.size() ; i++)  
  3. {  
  4.      Person p = ps.get(i);  
  5.      System.out.println(p.toString());  
  6. }  



可以看到上面的代码使用了TypeToken,它是gson提供的数据类型转换器,可以支持各种数据集合类型转换。 
Gson的基本使用就是这么多,至于annotation方面可以参考gson的官方文档.

 

其他资料:

http://blog.csdn.net/lk_blog/article/details/7685210

分享到:
评论

相关推荐

    Gson解析json数据

    无论面对简单的键值对还是复杂的JSON结构,Gson都能游刃有余地完成解析任务,使得开发者能更专注于业务逻辑,而不是繁琐的数据转换。通过熟练掌握Gson,我们可以更高效地在Java应用中处理JSON数据。

    Android Studio下使用Google Gson解析Json数据示例

    2. 使用Gson实例解析JSON:有了JSON字符串和对应的数据模型类,我们可以使用Gson的fromJson()方法将JSON转换为Java对象。 ```java String jsonString = "{\"name\":\"John Doe\",\"age\":30,\"city\":\"New York\"}...

    使用gson解析json

    Gson是Google提供的一个开源项目,它能够将Java对象转换成JSON格式的字符串,同时也可以将JSON数据转换回Java对象。这种转换过程非常方便,大大简化了JSON数据处理的复杂性。 二、添加Gson依赖 在使用Gson之前,...

    Gson解析JSON数据的入门级源码

    总的来说,Gson是一个强大且易于使用的库,可以帮助开发者轻松地在Java对象和JSON之间进行转换。通过阅读和理解提供的“Gson解析JSON数据的入门级源码”,你将能够熟练掌握这些基本操作,并进一步探索更高级的功能,...

    利用Google Gson实现JSON字符串和对象之间相互转换

    通过熟练掌握Gson的使用,开发者可以更高效地进行数据的序列化和反序列化操作。在`hsun_gson`这个压缩包文件中,可能包含了示例源码和Gson的jar包,你可以参考这些资源进一步学习和实践Gson的使用。

    通过Gson解析Json文件

    在Java开发中,处理JSON数据是一项常见的任务,Gson库是由Google提供的一个强大的工具,用于在Java对象和JSON数据之间进行映射。本篇文章将详细阐述如何使用Gson库解析JSON文件,帮助开发者理解并掌握这一技能。 ...

    android中gson解析json数据例程

    接下来,我们将创建一个简单的Java对象,以演示Gson如何将JSON数据转换为Java对象。假设我们有一个JSON字符串,表示一个人的信息: ```json { "name": "John Doe", "age": 30, "email": "johndoe@example.com" }...

    assets下使用gson进行json文件读取

    至此,我们已经了解了如何在Android的`assets`目录下使用`Gson`读取和解析JSON数据,以及如何对JSON进行格式化。这些知识对于处理本地存储的JSON数据至关重要,特别是在处理复杂的数据结构时。在实际开发中,根据...

    GSON解析Json数据信息

    GSON,全称为Google Simple JSON,是Google提供的一款强大的Java库,用于在Java对象和JSON数据之间进行映射。这个库使得Java开发者能够方便地将JSON字符串转化为Java对象,反之亦然,极大地简化了JSON数据的处理。在...

    Gson解析(List和Map)格式json数据 - CSDN博客1

    总结来说,Gson是Java开发中处理JSON数据的强大工具,无论是List还是Map格式的JSON,都能轻松地转换为相应的Java对象,便于进一步的数据操作和处理。了解并熟练掌握Gson的使用,对于提升Java开发效率具有显著的帮助...

    Gson解析复杂Json实例,超简单

    `Gson`是Google提供的一款强大的Java库,用于将Java对象转换为JSON字符串,以及将JSON数据转换回等效的Java对象。本教程将深入探讨如何使用Gson库解析复杂的JSON实例,让你只需寥寥几行代码就能轻松处理JSON解析问题...

    Gson解析复杂json数据

    使用 Gson 库,我们可以使用 GsonBuilder 来创建一个 Gson 对象,然后使用 fromJson() 方法将 JSON 字符串转换为 Java 对象。例如: ``` Gson gson = new GsonBuilder().create(); MyObject obj = gson.fromJson...

    用gson解析json数据

    Gson是Google提供的一款Java库,用于在Java对象和JSON数据之间进行映射。这个库非常强大且灵活,允许开发者将Java对象转换为对应的JSON字符串,反之亦然。下面我们将详细探讨如何使用Gson来解析JSON数据,特别是处理...

    利用HttpClient获取数据并用Gson解析Json数据

    本教程将专注于使用Apache HttpClient库获取网络数据,然后使用Google的Gson库解析JSON格式的数据。这是一个基础但重要的技能,对于任何想要与服务器进行交互的开发者来说都是必备的。 首先,我们需要了解`...

    Gson处理Json格式字符串代码

    在Java开发中,Gson库是Google提供的一款用于在Java对象和JSON数据之间进行映射的Java库。它使得我们能够方便地将Java对象转换为JSON格式的字符串,同时也能将JSON格式的数据转换回对应的Java对象。这个过程被称为...

    Gson解析Json数据

    在TestGSON这个例子中,你可以尝试创建一个包含复杂JSON数据的文件,然后使用上述方法进行解析。Gson库的强大之处在于它能自动映射JSON数据到Java对象,减少了手动解析的繁琐工作。同时,Gson还提供了丰富的配置选项...

    android中使用gson来创建和解析json数据

    本文将详细介绍如何在Android中使用Gson来创建和解析JSON数据。 首先,你需要在项目中引入Gson库。如果你的项目使用的是Gradle构建系统,可以在`build.gradle`文件的dependencies块中添加以下依赖: ```groovy ...

    使用gson解析并生成json数据

    - 在网络请求中,Gson常用于将服务器返回的JSON数据转换为Java对象,方便进一步处理。 - 在本地存储中,Gson可以用来将对象序列化为JSON字符串,然后写入文件或数据库,需要时再读取反序列化。 9. **示例代码** ...

    Gson转json格式和解析json格式小例子

    总之,Gson库简化了Java与JSON之间的数据转换,使得开发者能够方便地在Java对象和JSON数据之间进行互换,这对于网络通信、数据存储等场景非常实用。通过深入理解和实践,我们可以更高效地利用Gson处理JSON相关的任务...

    解析json的gson

    JSON(JavaScript Object...总之,Gson是Java开发者处理JSON数据的强大工具,它简化了JSON与Java对象之间的转换过程,使得在各种应用场景下,如Web服务交互、数据存储和配置文件读写等,都能够更加便捷地处理JSON数据。

Global site tag (gtag.js) - Google Analytics