从零开始学android开发-Json转换利器Gson之实例
Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象,或者反过来。
jar和源码下载地址: http://code.google.com/p/google-gson/downloads/list
实体类:
public class Student {
private int id;
private String name;
private Date birthDay;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getBirthDay() {
return birthDay;
}
public void setBirthDay(Date birthDay) {
this.birthDay = birthDay;
}
@Override
public String toString() {
return "Student [birthDay=" + birthDay + ", id=" + id + ", name="
+ name + "]";
}
}
测试类:
import java.util.ArrayList;
import java.util.Date;
import java.util.List; import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken; public class GsonTest1 { public static void main(String[] args) {
Gson gson = new Gson(); Student student1 = new Student();
student1.setId();
student1.setName("李坤");
student1.setBirthDay(new Date()); // //////////////////////////////////////////////////////////
System.out.println("----------简单对象之间的转化-------------");
// 简单的bean转为json
String s1 = gson.toJson(student1);
System.out.println("简单Bean转化为Json===" + s1); // json转为简单Bean
Student student = gson.fromJson(s1, Student.class);
System.out.println("Json转为简单Bean===" + student);
// 结果:
// 简单Bean转化为Json==={"id":1,"name":"李坤","birthDay":"Jun 22, 2012 8:27:52 AM"}
// Json转为简单Bean===Student [birthDay=Fri Jun 22 08:27:52 CST 2012, id=1,
// name=李坤]
// ////////////////////////////////////////////////////////// Student student2 = new Student();
student2.setId();
student2.setName("曹贵生");
student2.setBirthDay(new Date()); Student student3 = new Student();
student3.setId();
student3.setName("柳波");
student3.setBirthDay(new Date()); List<Student> list = new ArrayList<Student>();
list.add(student1);
list.add(student2);
list.add(student3); System.out.println("----------带泛型的List之间的转化-------------");
// 带泛型的list转化为json
String s2 = gson.toJson(list);
System.out.println("带泛型的list转化为json==" + s2); // json转为带泛型的list
List<Student> retList = gson.fromJson(s2,
new TypeToken<List<Student>>() {
}.getType());
for (Student stu : retList) {
System.out.println(stu);
} // 结果:
// 带泛型的list转化为json==[{"id":1,"name":"李坤","birthDay":"Jun 22, 2012 8:28:52 AM"},{"id":2,"name":"曹贵生","birthDay":"Jun 22, 2012 8:28:52 AM"},{"id":3,"name":"柳波","birthDay":"Jun 22, 2012 8:28:52 AM"}]
// Student [birthDay=Fri Jun 22 08:28:52 CST 2012, id=1, name=李坤]
// Student [birthDay=Fri Jun 22 08:28:52 CST 2012, id=2, name=曹贵生]
// Student [birthDay=Fri Jun 22 08:28:52 CST 2012, id=3, name=柳波] }
}
执行结果:
----------简单对象之间的转化-------------
简单Bean转化为Json==={"id":,"name":"李坤","birthDay":"Jun 22, 2012 9:10:31 PM"}
Json转为简单Bean===Student [birthDay=Fri Jun :: CST , id=, name=李坤]
----------带泛型的List之间的转化-------------
带泛型的list转化为json==[{"id":,"name":"李坤","birthDay":"Jun 22, 2012 9:10:31 PM"},{"id":,"name":"曹贵生","birthDay":"Jun 22, 2012 9:10:31 PM"},{"id":,"name":"柳波","birthDay":"Jun 22, 2012 9:10:31 PM"}]
Student [birthDay=Fri Jun :: CST , id=, name=李坤]
Student [birthDay=Fri Jun :: CST , id=, name=曹贵生]
Student [birthDay=Fri Jun :: CST , id=, name=柳波]
Json转换利器Gson之实例一-简单对象转化和带泛型的List转化 (http://blog.csdn.net/lk_blog/article/details/7685169)
Json转换利器Gson之实例二-Gson注解和GsonBuilder (http://blog.csdn.net/lk_blog/article/details/7685190)
Json转换利器Gson之实例三-Map处理(上) (http://blog.csdn.net/lk_blog/article/details/7685210)
Json转换利器Gson之实例四-Map处理(下) (http://blog.csdn.net/lk_blog/article/details/7685224)
Json转换利器Gson之实例五-实际开发中的特殊需求处理 (http://blog.csdn.net/lk_blog/article/details/7685237)
Json转换利器Gson之实例六-注册TypeAdapter及处理Enum类型 (http://blog.csdn.net/lk_blog/article/details/7685347)
实例代码下载: http://download.csdn.net/detail/lk_blog/4387822
从零开始学android开发-Json转换利器Gson之实例的更多相关文章
- Json转换利器Gson之实例一-简单对象转化和带泛型的List转化 (转)
Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库.可以将一个 JSON 字符串转成一个 Java 对象,或者反过来. jar和源码下载地址: h ...
- 从零开始学android开发-字符如何转换整形 string 转化为int
int i = Integer.parseInt(string);
- 从零开始学android开发-通过WebService进行网络编程,使用工具类轻松实现
相信大家在平常的开发中,对网络的操作用到HTTP协议比较多,通过我们使用Get或者Post的方法调用一个数据接口,然后服务器给我们返回JSON格式的数据,我们解析JSON数据然后展现给用户,相信很多人 ...
- 从零开始学android开发-setBackgroundDrawable与setBackgroundResource的区别
setBackgroundDrawable和setBackgroundResource的区别很多网友不知道View类提供的setBackgroundDrawable和setBackgroundReso ...
- 从零开始学android开发- 应用程序窗体显示状态操作requestWindowFeature
我们在开发程序是经常会需要软件全屏显示.自定义标题(使用按钮等控件)和其他的需求,今天这一讲就是如何控制Android应用程序的窗体显示. 首先介绍一个重要方法那就是requestWindowFeat ...
- 从零开始学android开发-创建第一个android项目
打开ADT开发工具
- 从零开始学android开发-项目打包发布
右键项目 选择[android tools]-[export signed application package] 点击[next] 如果没有keystore可以选择[create new keys ...
- 从零开始学android开发-adt-bundle-eclipse下的修改android app名称
eclipse中,打开项目根目录中的AndoirManifest.xml文件,找到如下内容 <application android:allowBackup="true" a ...
- 从零开始学android开发-通过WebService获取今日天气情况
因为本身是在搞.NET方面的东东,现在在学习Android,所以想实现Android通过WebService接口来获取数据,网上很多例子还有有问题的.参考:Android 通过WebService进行 ...
随机推荐
- WINCE6.0+ILI9806E休眠唤醒显示异常问题
我们的系统WINCE6.0,它支持睡眠和唤醒,目的是想在不使用的时候让设备进入睡眠状态,降低功耗,我们遇到的问题就是设备正常启动后正常显示,但睡眠然后唤醒后要么显示白屏要么是条纹状白屏,如下图: 图1 ...
- Codeforces Round #221 (Div. 2) C. Divisible by Seven(构造 大数除法 )
上几次的一道cf题. 题目:http://codeforces.com/contest/376/problem/C 性质: (4)a与b的和除以c的余数(a.b两数除以c在没有余数的情况下除外),等于 ...
- poj 3295 Tautology (构造)
题目:http://poj.org/problem?id=3295 题意:p,q,r,s,t,是五个二进制数. K,A,N,C,E,是五个运算符. K:&& A:||N:! C:(!w ...
- 解锁windowsphone设备遇到的错误:检查Miscrosoft账户凭据、请重新注册 0x80004005 解决方案
本篇文章主要讲在解锁windowsphone设备时遇到的错误 Error1:登录windowsphone开发人员中心时出错,请检查您的miscrosoft账户凭据 Error2:注册您的手机时出现未知 ...
- 获取QQ所有的表情包,包括emoji,动态gif
获取QQ所有的表情包,包括emoji,动态gif,代码如下. <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xht ...
- 【MooTools】
MooTools a compact javascript frameworkhttp://mootools.net/docs/core 30天学会 MooTools 教学(1): 认识MooTool ...
- LA 6540 Fibonacci Tree
以前做过的题···重新做一遍之后怎么做怎么wa···后来GG了···第二天看不知道为啥A了···难道我失忆了? 题意:无向图,边有黑色和白色两种颜色,求是否存在一个生成树中白边的个数是斐波那契数. 解 ...
- C# 中的枚举类型 enum (属于值类型)
原文 C# 中的枚举类型 enum (属于值类型) C# 支持两种特殊的值类型:枚举和结构. 声明枚举:声明时要声明所有可能的值. using System; using System.Collect ...
- 一个简单的MDI示范程序(Delphi)
http://www.cnblogs.com/pchmonster/archive/2012/01/07/2316012.html 最为一个巩固之前有关窗体和对象的有关知识,下面就建立一个简单的MDI ...
- android 图片全屏
方式一: 在xml的布局文件的根元素设置属性background 方式二: <ImageView android:layout_width="fill_parent&q ...