Gson解析Json数据的通用方法

本文介绍如何使用Gson库解析JSON数据,包括定义多层Bean类及从JSON字符串中提取数据的过程。重点在于各层变量名需与原始数据节点一致,避免空指针异常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 环境配置

引入Gson的依赖包即可。


2 原始数据

String gs = "{" + "country:{" + "city:{" + "persons:[" + "{name:gaofeng,age:22},"+ "{name:bing,age:23}" + "]" + "}" + "}" + "}";

3 开始解析

1 编写各层Bean类

1 person层
class Person {
  private String name;
  private int age;
  //get、set省略
 ...
}
2 city层
class City {
  //因为原始数据中的person层为多个对象,故需要使用集合
  private List<Person> persons;
  //get、set省略
 ...
}
3 country层
class Country {
  private City city;
  //get、set省略
  ...
}
4 新增最外层
class T {
  private Country country;
 //get、set省略
 ...
}

2 用Gson解析

Gson gson = new Gson();
T t = gson.fromJson(gs, T.class);
List<Person>pp=t.getCountry().getCity().getPs();
for (Person person : pp) {
  System.out.println(">>>"+person);
}

3 注意点

那么问题来了:

你们在自己尝试的时候有没有报空指针的问题呢?

上面看似简单,其实里面有个需要注意的地方地方,那就是各层变量名需要与原始数据中各层的节点一致!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值