gson的简单使用方法
gson和其他现有java json类库最大的不同时gson需要序列化得实体类不需要使用annotation来标识需要序列化得字段,同时gson又可以通过使用annotation来灵活配置需要序列化的字段。
下面是一个简单的例子:
privateString name;
privateintage;
/**
* @returnthe name
*/
publicString getName() {
returnname;
}
/**
* @paramname the name to set
*/
publicvoidsetName(String name) {
this.name =name;
}
/**
* @returnthe age
*/
publicintgetAge() {
returnage;
}
/**
* @paramage the age to set
*/
publicvoidsetAge(intage) {
this.age =age;
}
@Override
publicString toString()
{
returnname +":"+age;
}
}
实体很简单,两个字段,当然实体中的字段也可以是List或者Set类型的。
List<Person>persons =newArrayList<Person>();
for(inti =0; i <10; i++) {
Person p =newPerson();
p.setName("name"+i);
p.setAge(i *5);
persons.add(p);
}
String str =gson.toJson(persons);
上面的代码重点是Gson对象,它提供了toJason()方法将对象转换成Json字符串,上面代码的str对象值为:
[{"name":"name0","age":0},{"name":"name1","age":5},{"name":"name2","age":10},{"name":"name3","age":15},{"name":"name4","age":20},{"name":"name5","age":25},{"name":"name6","age":30},{"name":"name7","age":35},{"name":"name8","age":40},{"name":"name9","age":45}]
很标准的json数据,很简单吧,呵呵。
下面来看看gson的反序列化,Gson提供了fromJson()方法来实现从Json相关对象到java实体的方法。
在日常应用中,我们一般都会碰到两种情况,转成单一实体对象和转换成对象列表或者其他结构。
先来看第一种:
比如json字符串为:[{"name":"name0","age":0}]
代码:
提供两个参数,分别是json字符串以及需要转换对象的类型。
第二种,转换成列表类型:
代码:
for(inti =0; i <ps.size() ; i++)
{
Person p =ps.get(i);
System.out.println(p.toString());
}
可以看到上面的代码使用了TypeToken,它是gson提供的数据类型转换器,可以支持各种数据集合类型转换。
转载于:https://www.cnblogs.com/happyPawpaw/archive/2012/10/23/2735697.html
gson的简单使用方法相关推荐
- JAVA用最简单的方法来构建一个高可用的服务端,提升系统可用性
一.什么是提升系统的高可用性 JAVA服务端,顾名思义就是23体验网为用户提供服务的.停工时间,就是不能向用户提供服务的时间.高可用,就是系统具有高度可用性,尽量减少停工时间.如何用最简单的方法来搭建 ...
- 【CI3.1】CI框架简单使用方法
CI框架简单使用方法 1.回忆MVC1.1.M:模型,提供数据,保存数据1.2.V:视图,只负责显示,表单form1.3.C:控制器,协调模型和视图1.4.action:动作,是控制器中的方法,用于被 ...
- smarty mysql demo_PHP Smarty模版简单使用方法
本文实例讲述了PHP Smarty模版简单使用方法.分享给大家供大家参考,具体如下: Index.php: require('../libs/Smarty.class.php'); $smarty = ...
- 通过身份证号提取性别_身份证号提取生日、年龄、性别、籍贯,最简单的方法!...
上一期,Amy跟大家分享了如何从身份证号中提取出生日期.今天我们继续来讲如何提取年龄.性别.籍贯. 身份证号提取年龄 ✦思路:在E2单元格输入公式"=DATEDIF(D2,TODAY(),& ...
- 创建三维建筑可视化和虚拟现实的最快和最简单的方法
创建三维建筑可视化和虚拟现实的最快和最简单的方法 时长3小时12分 1280X720 Mkv 语言:英语+中文字幕(根据原英文字幕机译更准确)+原英文字幕 大小解压后:2.86G 共28小节课程 标题 ...
- scala akka_如何对Scala和Akka HTTP应用程序进行Docker化-简单的方法
scala akka by Miguel Lopez 由Miguel Lopez 如何对Scala和Akka HTTP应用程序进行Docker化-简单的方法 (How to Dockerise a S ...
- 上如何刻字_如何用简单的方法在零件表面刻字:这里就有你想要的答案
上一篇文章我们用solidworks软件的焊件模块来绘制了一个最简单的机架.此过程中用到了焊件的以下功能:结构构件.角撑板.只要以后画机架肯定要用到结构构件的,大家应该注意学习好这个最常用的功能,在这 ...
- 不用恐惧AI的高速发展,论击败阿法狗(零)最简单的方法
作者:刘锋 计算机博士,互联网进化论作者 10月19日凌晨,在国际学术期刊<自然>(Nature)上发表的一篇研究论文中,谷歌下属公司Deepmind报告新版程序AlphaGo Zero: ...
- PHP5.2.3+apache2.2.4的最简单安装方法
最近为了安装PHP+apache这个PHP开发环境,到处查找资料,网上众说纷纭,我试了好多版本都没有成功,原因是网上说的都是过时的版本的配置方法(如PHP4+apache2.0),随着PHP和apac ...
最新文章
- IDEA 一些基本概念
- html5 css3 卡片切换,HTML5之纯CSS3实现的tab标签切换
- 精通Server Core系列之二 ---Server Core安装与基本配置
- python读取log文件_python之文件的读写(文本文档,log文件)
- 编程语言python入门-【python】编程语言入门经典100例--19
- jdk8升级jdk11报 java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
- Rust: flat_map、filter_map、for_each
- 新手如何搭建淘宝客网站,实用教程
- Unity 通过修改图片透明度实现淡出效果
- element-ui vue-quill-editor 富文本编辑器 解决插入图片不采用base64 从服务器传图片在显示返回url
- PDF转成JPG,使用PDFTOJPG并去除水印
- 怎样修改计算机用户文件名,win10修改用用户文件夹名字怎么操作_win10更改用户文件夹名称方法...
- 深入理解AQS--jdk层面管程实现【管程详解的补充】
- Mysql - 对所有员工的薪水按照salary进行按照1-N的排名
- Java面向对象 继承,super,方法重写
- proguard 配置简介
- 【转载】Spring5源码调试环境搭建
- 证件照制作教程:如何使用在线工具制作高质量的证件照
- 驱动精灵2014网卡版 v8.0.522.1102 扩展版
- 双重差分模型能做固定效应吗_stata中双重差分操流程及代码
热门文章
- 盐务街属于一环吗_郑州步入“五环”时代,最早的“一环”原来是这里
- StringBuilder 和 String拼接10万个字符串的速度测试差别太大了
- freebsd linux目录,FreeBSD和Linux如何互相访问文件系统
- 在notepad++中配置java编译环境
- 关于jsp页面显示的时间格式和Oracle数据库中的格式不一样的问题
- (多线程)leetcode1117. H2O 生成 认识Java中的PV原语
- leetcode66. 加一
- C++(STL):25 ---序列式容器stack源码剖析
- C++:03---引用类型
- MachineLearning(10)-聚类