使用Gson解析json

摘要:
上一篇博客说,将json解析为java的方法使用了这些jar包。但是,在解析时,该层遇到了一个问题,即将时间字符串转换为Java时间戳对象时会引发异常。这个问题一直没有解决。前几天,当我突然想起这件事时,我上网寻找一些解决办法。经过很长一段时间,没有一个完美的解决方案,它要么复杂,要么不可能实现。最后,我发现有人说用谷歌的Gson解析json很方便,所以我尝试用Gson解析json。经过一次尝试,它真的很容易使用,问题很快就解决了。

前边的博客说过将json解析成java的方法,使用的是

使用Gson解析json第1张

这几个jar包,但是在解析时层遇到一个问题,就是在将时间字符串转换为java的Timestamp对象时会抛出异常,这个问题一直放在哪里没有去解决,前两天突然想起来,就去网上找些解决方法,找了很长时间也没有一个完美的解决办法,不是看着复杂就是不能实现,最后我发现有人说用google的Gson解析json挺方便的,于是我就尝试用Gson解析json,试了一下果然挺好用的,问题很快就解决了。

这里就以一个简单的例子来说明下吧。

这是一个java Bean

package baz.javabean;

import java.sql.Timestamp;

public class Product {
	
	private String name;
	private int id;
	private Timestamp date;

	public Product() {
		// TODO Auto-generated constructor stub
	}

	public Product(String name, int id, Timestamp date) {
		super();
		this.name = name;
		this.id = id;
		this.date = date;
	}



	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public Timestamp getDate() {
		return date;
	}

	public void setDate(Timestamp date) {
		this.date = date;
	}
	
}

下边是一个Test类

package baz.test;

import baz.javabean.Product;

import com.google.gson.Gson;

public class Test1 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Gson gson = new Gson();//new一个Gson对象
		//json字符串
		String json = "{\"name\":\"guolicheng\",\"id\":123456,\"date\":\"2013-4-13 12:36:54\"}";
		//new 一个Product对象
		Product product = new Product();
		//将一个json字符串转换为java对象
		product = gson.fromJson(json, Product.class);
		//输出
		System.out.println("Name:" + product.getName());
		System.out.println("Id:" + product.getId());
		System.out.println("Date:" + product.getDate());
	}

}

输出结果为:

Name:guolicheng
Id:123456
Date:2013-04-13 12:36:54.0

看很简单吧。

使用到的jar包,可以到这里下载http://pan.baidu.com/share/link?shareid=440391&uk=3457081238

或者到官网下载

至于更深入些的介绍,请看下这几篇博客吧。

Gson使用http://www.360doc.com/content/11/0309/16/1332348_99601000.shtml

Gson学习笔记http://www.360doc.com/content/11/0111/14/1332348_85735384.shtml

Json数据解析http://www.360doc.com/content/12/0903/10/7662927_233881217.shtml

Gson使用在android中的例子http://www.360doc.com/content/11/0815/14/7322578_140545909.shtml

免责声明:文章转载自《使用Gson解析json》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Visual Studio Code 从介绍,安装到配置所需插件蚂蚁金服开源机器学习工具SQLFlow,机器学习比SQL还简单下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

Android:在任务列表隐藏最近打开的app

//schemas.android.com/apk/res/android“package=”com.li.test“android:versionName=”1.0“&gt:targetSdkVersion=”23“/&gt:allowBackup=”true“android:icon=”@mipmap/ic_launcher“androi...

国产操作系统——银河麒麟V10 SP1使用小结

几天前,我看了国内操作系统Galaxy Kirin有了新更新的新闻,于是我开始了一个新系统=============================================个人评价:这个系统是一个国产操作系统。尽管使用了大量的Ubuntu和Windows设计,使用了Linux内核,但这是国产操作系统从无到有的开始,其意义和价值远远大于其使用价值。总之...

flutter 蓝牙开发记录

返回设备ID列表//您可以提前注册以扫描收听事件FlutterBlueflatterBlue=FlutterBlue。例子输出到uisetState((){this._blueDevice.add(r);防止多个扫描操作报告错误)FlutterBlueflatterBlue=FlutterBlue.instance;...

微信分享之分享图片/分享图标不能显示

微信分享的分享图标/图片无法显示,主要是由于以下几个问题:1.确保分享界面调用成功,分享路径正确。2.确保共享图片的路径不使用中文或全半角字符。3.确保副本不包含敏感字符,如红包和收据。当共享接口未能成功加载时,将发生错误。在页面的前面使用隐藏的div来放置要制作缩略图的图片。记住,不能直接隐藏图片。style=“display:noen”,如果没有,则使用...

汇编指令MOV

格式:MOVDST,SRC例如:MOVEAX,#050aH;将十六进制050a传送到通用寄存器eax中MOVDI,BXMOVES,AXMOVAX,DSMOVAL,23HMOV[2000H],02HMOV[2061H],BX...

Linux cat查看文件,查找关键字(grep),统计(wc -l)

######cat搜索关键字的语法:cat file | grep keyword | wc lcat/proc/meminfo | grepSwap | wc-l#######Linux系统中wc命令的功能是统计指定文件中的字节、单词和行数,并显示和输出统计结果。如果没有给出文件名,则从标准输入中读取。wc还提供指定文件的总统计数。此标志不能与-c标志一起...