`

使用Gson实现Json和Java对象的转换

阅读更多

GsonGoogle的开源项目(项目主页:https://code.google.com/p/google-gson/),

Gson在线帮助文档:http://google-gson.googlecode.com/svn/trunk/gson/docs/javadocs/index.html

Gson包下载地址:https://google-gson.googlecode.com/files/google-gson-2.2.4-release.zip

 

示例:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
 
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
 
class User{
   public User(String name,int age,StringBuffer sex,boolean isChild){
      this.name = name;
      this.age = age;
      this.sex = sex;
      this.isChild = isChild;
   }
   private String name;
   private int age;
   private StringBuffer sex;
   private boolean isChild;
   public String toString(){
      return "{name="+name+";age="+age+";sex="+sex+";isChild="+isChild+"}";
   }
   public int hashCode(){
      return name.hashCode()*100+age;
   }
}
 
public class GsonTest {
   public static void main(String[] args) {
      Gson gson = new Gson();
     
      System.out.println("1普通的Bean的转换**************************");
      System.out.println("将一个Bean转换成为json字符串->");
      User user1 = new User("凤姐",12,new StringBuffer("未知"),true);
      System.out.println("转换之前的user1"+user1);
      String json = gson.toJson(user1);
      System.out.println("User对象转换成为Json字符串,json==="+json);
     
      System.out.println("***************************");
      System.out.println("将一个json字符串转换成为Bean->");
      User user2 = gson.fromJson(json, User.class);
      System.out.println("转换成为的user2=="+user2);
      System.out.println();
     
      System.out.println("2Collection集合的转换**************************");
      System.out.println("将一个Bean的List集合转换成为json字符串->");
      Collection<User> userList1 = new ArrayList<User>();
      for(int i=0;i<3;i++){
        User user = new User("如花",10+i,new StringBuffer("男"),false);
        userList1.add(user);
      }
      json = gson.toJson(userList1);
      System.out.println("User的List集合对象转换成为Json字符串,json==="+json);
     
      System.out.println("***************************");
      System.out.println("将一个json字符串转换成为Bean的List集合->");
      Collection<User> userList2 =
           gson.fromJson(json,
                 new TypeToken<Collection<User>>(){}.getType());
      System.out.println("转换成为的User的List集合,userList2="+userList2);
      System.out.println();
     
      System.out.println("3Array数组的转换**************************");
      System.out.println("将一个Bean的Array数组转换成为json字符串->");
      User [] userArray1 = new User[3];
      for(int i=0;i<userArray1.length;i++){
        userArray1[i] = new User("芙蓉",20,new StringBuffer("人妖"),true);
      }
      json = gson.toJson(userArray1);
      System.out.println("User的数组对象转换成为Json字符串,json==="+json);
     
      System.out.println("***************************");
      System.out.println("将一个json字符串转换成为Bean的数组对象->");
      User [] userArray2 = gson.fromJson(json, new TypeToken<User[]>(){}.getType());
      System.out.println("转换成为的User的数组对象,userArray2="+Arrays.toString(userArray2));
      System.out.println();
     
      System.out.println("4Map的转换**************************");
      System.out.println("将一个Bean的Map转换成为json字符串->");
      Map<String,User> map1 = new HashMap<String,User>();
      for(int i=0;i<3;i++){
        map1.put(""+(i+10), userArray1[i]);
      }
      json = gson.toJson(map1);
      System.out.println("User的Map集合转换成为Json字符串,json==="+json);
     
      System.out.println("***************************");
      System.out.println("将一个json字符串转换成为Bean的数组对象->");
      Map<String,User> map2 =
           gson.fromJson(json,
                 new TypeToken<Map<String,User>>(){}.getType());
      System.out.println("转换成为的User的数组对象,map2=="+map2);
   }
}

运行结果:

1普通的Bean的转换**************************
将一个Bean转换成为json字符串->
转换之前的user1{name=凤姐;age=12;sex=未知;isChild=true}
User对象转换成为Json字符串,json==={"name":"凤姐","age":12,"sex":"未知","isChild":true}
***************************
将一个json字符串转换成为Bean->
转换成为的user2=={name=凤姐;age=12;sex=未知;isChild=true}

2Collection集合的转换**************************
将一个Bean的List集合转换成为json字符串->
User的List集合对象转换成为Json字符串,json===[{"name":"如花","age":10,"sex":"男","isChild":false},{"name":"如花","age":11,"sex":"男","isChild":false},{"name":"如花","age":12,"sex":"男","isChild":false}]
***************************
将一个json字符串转换成为Bean的List集合->
转换成为的User的List集合,userList2=[{name=如花;age=10;sex=男;isChild=false}, {name=如花;age=11;sex=男;isChild=false}, {name=如花;age=12;sex=男;isChild=false}]

3Array数组的转换**************************
将一个Bean的Array数组转换成为json字符串->
User的数组对象转换成为Json字符串,json===[{"name":"芙蓉","age":20,"sex":"人妖","isChild":true},{"name":"芙蓉","age":20,"sex":"人妖","isChild":true},{"name":"芙蓉","age":20,"sex":"人妖","isChild":true}]
***************************
将一个json字符串转换成为Bean的数组对象->
转换成为的User的数组对象,userArray2=[{name=芙蓉;age=20;sex=人妖;isChild=true}, {name=芙蓉;age=20;sex=人妖;isChild=true}, {name=芙蓉;age=20;sex=人妖;isChild=true}]

4Map的转换**************************
将一个Bean的Map转换成为json字符串->
User的Map集合转换成为Json字符串,json==={"10":{"name":"芙蓉","age":20,"sex":"人妖","isChild":true},"11":{"name":"芙蓉","age":20,"sex":"人妖","isChild":true},"12":{"name":"芙蓉","age":20,"sex":"人妖","isChild":true}}
***************************
将一个json字符串转换成为Bean的数组对象->
转换成为的User的数组对象,map2=={10={name=芙蓉;age=20;sex=人妖;isChild=true}, 11={name=芙蓉;age=20;sex=人妖;isChild=true}, 12={name=芙蓉;age=20;sex=人妖;isChild=true}}

 

参考文章:

http://qindongliang1922.iteye.com/blog/1915710

http://www.cnblogs.com/happyPawpaw/archive/2012/10/23/2735697.html

http://zhiweiofli.iteye.com/blog/1684236

1
1
分享到:
评论

相关推荐

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

    当你有一个Java对象并想将其转化为JSON字符串时,可以使用`Gson().toJson()`方法;反之,如果你有一个JSON字符串并想解析成Java对象,可以使用`Gson().fromJson()`方法。 ### JSON字符串转Java对象 以下是一个简单...

    gson 使用Gson将Java对象转换为JSON

    Gson是Google的一个开源项目,可以将Java对象转换成JSON,也可能将JSON转换成Java对象。 Gson里最重要的对象有2个Gson 和 GsonBuilder Gson有2个最基本的方法 1) toJson() – 转换java 对象到JSON 2) from...

    使用gson解析json

    2. 其次,需要将Java对象转换成JSON字符串,使用Gson的toJson方法可以实现这一步骤。 使用FastJson解析JSON的步骤: 1. 首先,需要将JSON字符串解析成Java对象,使用FastJson的parseObject方法可以实现这一步骤。 ...

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

    `Gson`是一个由Google提供的库,用于将Java对象转换为JSON字符串,反之亦然。在这个场景中,我们将讨论如何在Android项目的`assets`目录下使用`Gson`来读取JSON文件,以及如何对JSON数据进行格式化操作。 首先,`...

    Gson解析json数据

    Gson是Google开发的一款Java库,用于在Java对象和JSON数据之间进行映射。它使得在Java应用程序中处理JSON变得非常简单,无论是将JSON转换为等效的Java对象,还是将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文件

    3. 使用Gson解析JSON:创建Gson实例,然后调用`fromJson()`方法将JSON字符串转换为Java对象。 ```java Gson gson = new Gson(); String jsonString = reader.readLine(); // 读取JSON文件第一行内容 User user = ...

    GSON包,JAVA对象和LIST转换成JSON字符串

    创建一个 Gson对象在调用其toJson方法将JAVA对象或集合转换成json字符串 Gson gson = new Gson(); String toJson = gson.toJson(Object o);

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

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

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

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

    使用Gson解析json并且加载json中的网络图片

    在Android开发中,Gson库是一个非常常用的工具,它由Google提供,用于将Java对象转换为JSON字符串,以及将JSON数据转换回等效的Java对象。在这个场景中,"使用Gson解析json并且加载json中的网络图片"涉及到的关键...

    gson java对象与json转换(实例代码说明及教程)

    在Java开发中,数据交换格式JSON(JavaScript Object Notation)被广泛使用,而Gson库是Google提供的一款强大的工具,它允许开发者轻松地在Java对象和JSON数据之间进行转换。本教程将深入讲解如何使用Gson库进行Java...

    gson 2.7 用于转换Java对象和Json对象

    Gson库是由Google提供的一个Java库,其主要功能是帮助开发者在Java对象和JSON数据之间进行相互转换。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其易读性、易写性和易于解析而被广泛应用于...

    Json与java对象之间相互转换源码

    本篇文章将详细探讨这个过程,以及如何使用常见的Java JSON库,如Gson和Jackson,进行JSON与Java对象的转换。 首先,让我们了解JSON的基本结构。JSON格式通常包含键值对(key-value pairs)和数组。键值对以冒号...

    使用Gson解析json数据

    3. **序列化对象为JSON**:使用Gson库,可以轻松地将Java对象转换为JSON字符串。例如: ```java Gson gson = new Gson(); User user = new User("张三", 25); String jsonString = gson.toJson(user); ``` `toJson()...

    gson 2.3.1 json转换利器

    Gson是Google开发的一款强大的Java库,用于在Java对象和JSON数据之间进行映射。它的全称是Google Simple JSON,其版本2.3.1是一个较为稳定且广泛使用的版本,适用于许多Android和Java项目。本篇文章将深入探讨Gson ...

    Gson+Json的jar包

    例如,你可以直接使用Gson的`Gson().toJson()`方法将Java对象转化为JSON字符串,然后使用`fromJson()`方法将JSON字符串转换回Java对象。此外,Gson还支持自定义类型适应器,可以处理更复杂的数据结构。 Json库可能...

    JSON、GSON解析json

    GSON是Google提供的一个Java库,用于将Java对象转换为JSON格式的字符串,反之亦然。GSON的强大之处在于它可以自动映射JSON数据到Java对象,大大简化了JSON解析和序列化的过程。 以下是关于JSON和GSON在Android开发...

    gson和json

    Gson提供`fromJson()`方法,可以将JSON字符串转化为指定类型的Java对象: ```java String jsonString = "{\"name\":\"John\",\"lastName\":\"Doe\"}"; Person person = gson.fromJson(jsonString, Person.class); `...

Global site tag (gtag.js) - Google Analytics