用GSON解析Json格式数据

 GSON是谷歌提供的开源库,用来解析Json格式的数据,非常好用。如果要使用GSON的话,则要先下载gson-2.2.4.jar这个文件,如果是在Android项目中使用,则在Android项目的libs目录下添加这个文件即可;如果是在Java项目中,则把gson-2.2.4.jar先添加到当前项目的任意一个包中,然后右键点击这个jar包 -> 构建路径 -> 添加至构建路径。这样准备工作就做好了。

  (一)单条无嵌套Json数据的解析

  比如有如下Json数据:{"name":"John", "age":20}  //也可以用单引号,写成:{'name':'John', 'age':20}

  解析该数据步骤如下:

  1、定义Person类:

复制代码
1 public class Person{
2 
3     private String name;  //属性都定义成String类型,并且属性名要和Json数据中的键值对的键名完全一样
4 
5     private String age;
6 
7     ...//提供所有属性的getter和setter方法
8 
9 }
复制代码

  2、创建GSON对象并解析:

1 String jsonData = "{\"name\":\"John\", \"age\":20}";  //注:这里也可以不使用转义字符,而用单引号:String jsonData = "{'name':'John', 'age':20}";
2 Gson gson = new Gson();
3 Person person = gson.fromJson(jsonData,Person.class);

  3、然后使用Person对象的getter方法就可以获取到数据了。 

  4、扩展:考虑到Json数据的不同,那么解析Json的时候所用的类也可能不同,比如这里用的是Person,如果解析其他数据可能用的又是Dog、Cat...所以考虑将用GSON解析的步骤封装,并提供泛型参数,示例程序如下:

复制代码
 1 import com.google.gson.Gson;
 2 
 3 /**
 4  * 用GSON解析单条Json数据
 5  *
 6  */
 7 public class GsonTest1 {
 8     public static void main(String[] args) {
 9         String jsonData = "{'name':'John', 'age':20}";
10         Person person = GsonUtil.parseJsonWithGson(jsonData, Person.class);
11         System.out.println(person.getName() + "," + person.getAge());
12     }
13 }
14 
15 /*
16  * 封装的GSON解析工具类,提供泛型参数
17  */
18 class GsonUtil {
19     //将Json数据解析成相应的映射对象
20     public static <T> T parseJsonWithGson(String jsonData, Class<T> type) {
21         Gson gson = new Gson();
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值