java list gson_Gson在Java中的使用实例

Gson在Java中的使用

JSON ( 官网) 是一种文本形式的数据交换格式,它比XML更轻量、比二进制容易阅读和编写,调式也更加方便。其重要性不言而喻。解析和生成的方式很多,Java中最常用的类库有:JSON-Java、Gson、Jackson、FastJson等。

所需依赖包

jar包:gson-2.8.2.jar 下载

依赖包配置:

com.google.code.gson

gson

2.2.8

一、Gson的基本用法

Gson提供了fromJson() 和toJson() 两个直接用于解析和生成的方法,前者实现反序列化,后者实现了序列化。

1.基本数据类型的生成和解析

(1)基本数据类型生成

Gson gson = new Gson();

String jsonNumber = gson.toJson(88);

String jsonBoolean = gson.toJson(false);

String jsonString = gson.toJson("String");

(2)基本数据类型的解析

int number = new Gson().fromJson(jsonNumber, int.class); // 88

boolean flag = new Gson().fromJson(jsonBoolean, boolean.class); // false

String str = new Gson().fromJson(jsonString, String.class); // String

2.POJO类的生成与解析

public class Student {

public String name;

public int age;

public String class;

public Student(String name, int age, String class) {

this.name = name;

this.age = age;

this.class = class;

}

}

(1)生成

Gson gson = new Gson();

Student stu = new Student("张三",24,"中国");

String jsonObject = gson.toJson(stu);

(2)解析

Gson gson = new Gson();

String jsonString = "{\"name\":\"张三\",\"age\":24,\"class\":\"中国\"}";

Student stu = gson.fromJson(jsonString, Student.class);

二、Gson在Java中的具体实例

Sting arr = "{'list':[{'fid':'1','name':'北京','hospitalld':'99999996'}, {'fid':'2','name':'深圳','hospitalld':'05786799'}]}";

1.利用gson把jsonList转化为一个list对象并将不需要的字段删除

/*** 1.将字符串数据转成JSONObject对象,用getJSONArray获取arr中的list集合

* 2.创建新的 JSONArray 用户存放删除后的数据

* 3.删除key-foodList里不需要的key/value

* 4.删除jsonArray里指定的key/value并将删除后的的新值赋给jsonArray1

* 5.利用Gsonde的TypeToken方法将转换好的list集合转换相对应额对象*/

//将app返回的String arr解析;

JSONArray jsonArray = JSONObject.fromObject(arr).getJSONArray("list");

JSONArray jsonArray1= newJSONArray();for(int i = 0; i < jsonArray.size(); i++){

JSONObject jsonObject=(JSONObject) jsonArray.get(i);

jsonArray1.add(jsonObject.discard("createdate"));//discard删除指定的字段

}

List list = null;

GSON gson= newGson();if (jsonArray1!=null){

list= gson.fromJson(String.valueOf(jsonArray1), new TypeToken>(){}.getType());

}

2.利用gson把jsonList转化为一个list对象

/*** 1.将字符串数据转成JSONObject对象,用getJSONArray获取arr中的list集合

* 2.利用Gsonde的TypeToken方法将转换好的list集合转换相对应额对象*/JSONArray jsonArray= JSONObject.fromObject(arr).getJSONArray("list");

List list = null;

GSON gson1= newGson();if (jsonArray1!=null){

list= gson1.fromJson(String.valueOf(jsonArray1), new TypeToken>(){}.getType());

}

3.json转化为一个类对象

JSONObject objects =JSONObject.fromObject(arr);

实体类对象 Customer= (实体类对象) JSONObject.toBean(objects.getJSONObject("Customer"), 实体类对象.class);

4.将 序列化后的字符串 转 成 map 对象

//jsonStr 序列化后的字符串

Gson gson2=newGson();

String jsonStr="{'1': {'fid': '1','name': '北京','hospitalld': '99999996'},'2': {'fid': '2','name': '深圳','hospitalld': '05786799'}}";

Map citys = gson2.fromJson(jsonStr, new TypeToken>() {}.getType());

System.out.println(citys.get("1").getName()+"-------"+citys.get("2").getName());

另一篇文章:https://blog.csdn.net/chenrenxiang/article/details/80291224

https://www.jianshu.com/p/75a50aa0cad1

ref:https://blog.csdn.net/qq_34292479/article/details/86495412?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值