基于Google Json工具包解析数据

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010214991/article/details/49334499

大家好,前面我写了一篇文章,标题为《Android之json数据的解析方法》,文章讲述的是使用安卓开发工具自带的工具类来解析json数据,不过在实际开发中,由于考虑到效率问题,更多的人会选择其它更为强大的解析工具,比如Google的json解析工具。本篇正是基于Google Json工具包来讲解如何使用它来解析数据,调用toJson方法可以将其它数据类型转换成json数据类型,或者调用fromJson可以将json数据类型解析成其它数据类型。如果你没有这个工具包,那么首先你要先把它下载下来,网上提供这个工具包的下载源很多,如果你懒得去找,可以下载我上传的Google Json解析工具包。


一、将jar包导入项目

下载下来后将该工具包导入你的项目中,直接拷贝到你工程项目的libs文件中即可。

二、使用详解

导入之后就可以使用了,接下来我们就来讲讲如何使用这个工具包,我们只介绍一些比较常见的,内容还是容易看懂的。

1.字符串数组和json字符串的相互转换

String[] day = new String[]{"星期一","星期二","星期三","星期四","星期五","星期六","星期日"};

假设我们要把上面的字符串数组解析成json字符串,怎么办呢?使用这个工具包可以简单做到。解析方法如下:

                Gson gson = new Gson();
		String jsonStr = gson.toJson(day);
		Log.i("mylog", "jsonStr->"+jsonStr);

在输出日志我们发现已经变成json数据了。


相反,如果我们想把上面解析到的字符串转换到一个字符串数组里面,可以这么做:

String[] weekDays = gson.fromJson(jsonStr, String[].class);
		
		for (int i = 0; i < weekDays.length; i++) {
			Log.i("mylog", weekDays[i]);
		}

其实就简单的一句代码就搞定了,下面的循环是为了打印结果,输出日志结果如下:




2.json字符串和类的相互转换

在开发当中,最常见的恐怕就是将json数据解析出来封装到一个类里面了。

String jsonStr = "{\"username\":\"huoying\",\"age\":38,\"address\":\"广东省东莞市茶山镇\"}";

上面的这个json字符串,我们怎么把它弄到一个类里面封装起来呢?首先我们先来自定义一个Student类。

public class Student {

	private String username;

	private int age;

	private String address;

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}

}

这个类非常简单,类中三个变量分别用来对应上面json字符串中的username、age和address;注意必须一一对应,也就是说Student类中的变量名称要跟json字符串中的字段名称一样,否则会获取不到,也就是解析不成功。不过你可以只写一个username,也就是说可以不用将全部字段写到类中。根据你的需要来获取就行啦。


类写好了,接下来就看怎么使用这个工具包来解析了,使用fromJson方法还是很简单就做到了,如下代码:

String jsonStr = "{\"username\":\"huoying\",\"age\":38,\"address\":\"广东省东莞市茶山镇\"}";

		Gson gson = new Gson();
		
		Student student = gson.fromJson(jsonStr,new TypeToken<Student>(){}.getType());
		//Student student = gson.fromJson(jsonStr,Student.class);//上面这行代码也可以这么写
		
		//打印语句
		Log.i("mylog", student.getUsername());
		Log.i("mylog", student.getAddress());
		Log.i("mylog", ""+student.getAge());

我们来看看输出效果。

把上面的Student类解析成字符串那就更简单了:

	String jsonString = gson.toJson(student);
	Log.i("mylog", "jsonString->"+jsonString);//打印语句

最后我们看看效果,发现又变回原来的json字符串了:

关于google json工具包使用方法的讲解就先到这里,后面有时间会再深入,谢谢大家的阅读!

猜你喜欢

转载自blog.csdn.net/u010214991/article/details/49334499
今日推荐