GSON方式生成和解析json数据

本文介绍了如何使用Gson库在Java中方便地将JavaBean、List<JavaBean>、List<String>和List<Map<String, Object>>等类型的数据转换为Json字符串,并进行反向解析。通过示例展示了Gson的toJson()和fromJson()方法的使用,以及在Android客户端和服务器端的应用。" 113598526,10545003,MySQL 8.0 新特性详解:账户安全、优化器与JSON增强,"['MySQL', '数据库', '新特性', '优化器', 'JSON']
摘要由CSDN通过智能技术生成


客户端与服务器进行数据交互时,常常需要将数据在服务器端将数据转化成字符串并在客户端对json数据进行解析生成对象。但是用jsonObject和jsonArray解析相对麻烦。利用Gson和阿里的fastjson可以很方便的将下面四种常用的数据转换成json字符串,并能够将其解析成原数据对象。

类型一:JavaBean

类型二:List<JavaBean>

类型三:List<String>

类型四:List<Map<String,Object>>

一.Gson将上面的四种数据对象转换成json字符串的方法都是一样的

Gson gson = new Gson();

String jsonString = gson.toJson(obj);

二.Gson将json字符串转化成JavaBean对象

1.类型一:JavaBean

Person person = new Person("香港","刘德华",1001);

Gson gson = new Gson();

//这里将javabean转化成json字符串

String jsonString = gson.toJson(person);

System.out.println(jsonString);

//这里将json字符串转化成javabean对象,

person = gson.fromJson(jsonString,Person.class);

2.类型二:List<JavaBean>

将json字符串转化成List<JavaBean>对象

Person person1 = new Person("香港","刘德华",1001);

Person person2 = new Person("韩国","宋慧乔",1002);

List<Person> persons = new ArrayList<Person>();

persons.add(person1);

persons.add(person2);

Gson gson = new Gson();

//这里将lsit<javabean>转化成json字符串

String jsonString = gson.toJson(persons);

//解析json字符串

List<Person> persons2 = gson.fromJson(jsonString, new TypeToken<List<Person>>(){}.getType());

3.类型三:List<String>

将json字符串转化成List<String>对象

List<String> list = new ArrayList<String>();

list.add("gson1");

list.add("gson2");

list.add("gson3");

Gson gson = new Gson();

String jsonString = gson.toJson(list);

System.out.println("json字符串:"+jsonString);

//解析json字符串

List<String> list2 = gson.fromJson(jsonString, new TypeToken<List<String>>(){}.getType());

4.类型四:List<Map<String,Object>>

将json字符串转化成List<Map<String,Object>>对象

Map<String,Object> map = new HashMap<String,Object>();

map.put("key1", "value1");

map.put("key2", "value2");

Map<String,Object> map2 = new HashMap<String,Object>();

map2.put("key1", 1);

map2.put("key2", 2);

List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();

list.add(map);

list.add(map2);

Gson gson =  new Gson();

String jsonString = gson.toJson(list);

System.out.println("json字符串:"+jsonString);

//解析json字符串

List<Map<String,Object>> list2 = gson.fromJson(jsonString, new TypeToken<List<Map<String,Object>>>(){}.getType());

--------------------------------------------------------------------------------------------------------------------------------

本程序服务器端通过Gson生成json字符串数据,客户端用Gson将从服务器端接收的json字符串分别转换为<Person>,List<Person>,List<String>,List<Map<String,Object>>4种类型,程序思路和过程跟前篇 android Intent传递 object , list<object>,list<Map<String,Object>>  相同,唯一区别就是:生成json用Gson方式,解析json用Gson方式。

程序结果截图:

1.点击“解析Person数据”按钮

3.点击“解析Persons”数据按钮

4.点击“解析listString数据”按钮

5.点击“解析listMap数据”按钮

---------------------------------------------------------------------------------------------------------------------------------------

客户端eclipse android工程目录(左边)服务器端myeclipse web工程目录(右边)

   


服务器端

1.P

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值