之前的一篇文章。写了如何使用android自带的json解析库来解析使用json数据。下面我们来看另一个很好的json解析库。这个解析库是google开源的。他就是Gson
Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行转换的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象,将java对象转换成Json字符串。
上面就是Gson的简单解释。
下面我们就开始来使用Gson
第一步 下载
Gson 被google发布到了github上。我们可以在github上下载下来
https://github.com/google/gson
下载下来之后。解压。我们就可以看到下载了一堆东西。
就像上面图片上一样。 不过我们只需要gson这个文件夹 就可以了。
第二步 生成gson.jar 包
我们打开gson这个文件夹。看到了pom.xml 大概明白了。这是个maven项目。但是我这里eclipse没有maven环境。也懒得为了生成一个jar包去下载、配置maven 哈哈。是有点懒。不过我其他没有什么地方用到maven 。所以这里我就说一种不用maven生成gson.jar包的方式。 知道的,有maven环境的可以略过 自行生成gson.jar包。 下面。来、摆好姿势。跟着我的节奏一起来。
一:
我们找到解压好的gson文件夹.
二:
我们打开eclipse 创建一个Java 项目 记住 是Java Project
三:
我们回到解压的gson文件夹。依次打开 gson/src/main/java/这个目录下,我们看到了一个com文件夹。我们复制这个文件夹。然后回到eclipse右击我们新建的Gson项目的src文件夹,选择paste 粘贴到这里。
我们就看到了。gson的源代码就粘贴到我们创建的Gson java项目里了。
四:
配置Gson项目的java编译版本 ,右击Gson这个项目 选择 properties
记得要选择1.6 这个很重要。否则很容易就会出现
Conversion to Dalvik format failed: Unable to execute
这个蛋疼的错误。
五:
没有报错。然后就直接export 到出成jar包。 就生成了我们需要的gson.jar文件了。
好了。经过以上的步骤。我们已经成功的生成了一个gson.jar文件。
第三步 使用
首先就是创建一个android项目。
在MainActivity里。添加下面的代码。
private Gson mGson = new Gson();
/**
* @author brok1n
* 方法名称:encodeJson
* 描述:TODO(创建json数据)
* 创建时间:2015年11月23日 下午2:49:08
* void
*/
private void encodeJson()
{
/**
* -------------------------
* 使用实体类对象、集合 生成json数据字符串
* -------------------------
* */
List< UserBean > list = new ArrayList< UserBean >();
for ( int i = 0; i < 5; i++ )
{
// 用户实体
UserBean userBean = new UserBean();
userBean.setUserName( "brok1n" + i );
userBean.setPassword( "123456" + i );
userBean.setSex( 1 + i );
// 生日实体
Birthday birthday = new Birthday();
birthday.setYear( 1998 + i );
birthday.setMonth( 2 + i );
birthday.setDay( 8 + i );
userBean.setBirthday( birthday );
list.add( userBean );
}
String userBeanJsonStr = mGson.toJson( list );
Log.e( "GsonDemo userBean", userBeanJsonStr );
/**
* 以上就是使用 实体类对象 利用Gson 生成字符串的使用方法
* -----------------------------
* 下面是 利用Gson将单一字段来组织成Json字符串
* */
JsonArray array = new JsonArray();
for ( int i = 0; i < 5; i++ )
{
//创建User用户数据json对象
JsonObject jsonObject =new JsonObject();
//下面演示了 向jsonObject里添加数据的两种方法。
// addProperty 和add 大家根据下面的例子、斟酌自己需要用哪个。
jsonObject.addProperty( "userName", "张三" + i );
jsonObject.add( "password", new JsonPrimitive( "123456" + i ) );
jsonObject.addProperty( "sex", new Integer( 1 + i ) );
//创建birthday对象
JsonObject birthday = new JsonObject();
birthday.addProperty( "year", new Integer( 1998 + i ) );
birthday.addProperty( "month", new Integer( 4 + i ) );
birthday.addProperty( "day", new Int