Android 使用google-gson处理json格式数据
2016-05-23 13:41
666 查看
private String address;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
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;
}
public User(String name, int age, String address) {
super();
this.name = name;
this.age = age;
this.address = address;
}
@Override
public String toString() {
return "User [name=" + name + ", age=" + age + ", address=" + address
+ "]";
}
}
使用google-gson的代码片段如下:
//0. 初始化json、User数组、List<User>、Map<String,User>、google-gson对象等数据:
//构建json格式的字符串
String jsonString="{'name':'tom','age':23,'address':'北京'}";
User u1=new User("艾迪森", 25, "北京");
User u2=new User("安迪", 23, "南京");
User u3=new User("托马斯", 21, "上海");
User u4=new User("爱丽丝", 22, "郑州");
User []us={u1,u2,u3,u4};
List<User> users=new ArrayList<User>();
users.add(u1);
users.add(u2);
users.add(u3);
users.add(u4);
Map<String,User> maps=new HashMap<String, User>();
maps.put("1001", u1);
maps.put("1002", u2);
maps.put("1003", u3);
maps.put("1004", u4);
//创建gson对象
Gson g=new GsonBuilder().create();
//1.json(对象)字符串和java对象间的相互转换
//把json格式的数据转换为java对象
User u=g.fromJson(jsonString,User.class);
System.out.println(u);
//输出结果:User [name=tom, age=23, address=北京]
//java对象的信息转换为json字符串
jsonString=g.toJson(u);
System.out.println(jsonString);
//输出结果:{"name":"tom","age":23,"address":"北京"}
//2.json(数组)字符串和java对象数组间的相互转换
//把java的数组转为json格式字符串
jsonString=g.toJson(us);
System.out.println(jsonString);
//输出结果:
[
{"name":"艾迪森","age":25,"address":"北京"},
{"name":"安迪","age":23,"address":"南京"},
{"name":"托马斯","age":21,"address":"上海"},
{"name":"爱丽丝","age":22,"address":"郑州"}
]
us=null;
//把json数组中的数据转为java数组对象
us=g.fromJson(jsonString, User[].class);
for(User uu:us){
System.out.println(uu);
}
//输出结果:
User [name=艾迪森, age=25, address=北京]
User [name=安迪, age=23, address=南京]
User [name=托马斯, age=21, address=上海]
User [name=爱丽丝, age=22, address=郑州]
//3.json(数组)字符串和java泛型集合对象List间的相互转换
//把list中的元素转为json格式数组
jsonString=g.toJson(users);
System.out.println(jsonString);
//输出结果:同数组
[
{"name":"艾迪森","age":25,"address":"北京"},
{"name":"安迪","age":23,"address":"南京"},
{"name":"托马斯","age":21,"address":"上海"},
{"name":"爱丽丝","age":22,"address":"郑州"}
]
users.clear();
//把json数组中的数据转为java集合对象list
TypeToken<List<User>> typeToken=new TypeToken<List<User>>(){};
Type type=typeToken.getType();
//如果使用了泛型集合就要使用type,指定泛型的具体类型。
users=g.fromJson(jsonString,type);
for(User uu:users){
System.out.println(uu);
}
//输出结果:同数组
User [name=艾迪森, age=25, address=北京]
User [name=安迪, age=23, address=南京]
User [name=托马斯, age=21, address=上海]
User [name=爱丽丝, age=22, address=郑州]
//4.json(对象)字符串和java泛型集合对象Map间的相互转换
//把map的中的数据转为json格式
jsonString=g.toJson(maps);
System.out.println(jsonString);
//输出结果:
{
"1003":{"name":"托马斯","age":21,"address":"上海"},
"1004":{"name":"爱丽丝","age":22,"address":"郑州"},
"1001":{"name":"艾迪森","age":25,"address":"北京"},
"1002":{"name":"安迪","age":23,"address":"南京"}
}
maps.clear();
//把json数组中的数据转为java集合对象
TypeToken<Map<String,User>> typeTokenMap=new TypeToken<Map<String,User>>(){};
Type typeMap=typeTokenMap.getType();
//如果使用了泛型集合就要使用type,指定泛型的具体类型。
maps=g.fromJson(jsonString,typeMap);
for(Map.Entry<String, User> uu:maps.entrySet()){
System.out.println(uu.getValue());
}
//输出结果:
User [name=托马斯, age=21, address=上海]
User [name=爱丽丝, age=22, address=郑州]
User [name=艾迪森, age=25, address=北京]
User [name=安迪, age=23, address=南京]
本文版权归传智播客Android培训学院所有,欢迎转载,转载请注明作者出处。谢谢!
作者:传智播客Android培训学院
首发:http://www.itcast.cn/android/
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
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;
}
public User(String name, int age, String address) {
super();
this.name = name;
this.age = age;
this.address = address;
}
@Override
public String toString() {
return "User [name=" + name + ", age=" + age + ", address=" + address
+ "]";
}
}
使用google-gson的代码片段如下:
//0. 初始化json、User数组、List<User>、Map<String,User>、google-gson对象等数据:
//构建json格式的字符串
String jsonString="{'name':'tom','age':23,'address':'北京'}";
User u1=new User("艾迪森", 25, "北京");
User u2=new User("安迪", 23, "南京");
User u3=new User("托马斯", 21, "上海");
User u4=new User("爱丽丝", 22, "郑州");
User []us={u1,u2,u3,u4};
List<User> users=new ArrayList<User>();
users.add(u1);
users.add(u2);
users.add(u3);
users.add(u4);
Map<String,User> maps=new HashMap<String, User>();
maps.put("1001", u1);
maps.put("1002", u2);
maps.put("1003", u3);
maps.put("1004", u4);
//创建gson对象
Gson g=new GsonBuilder().create();
//1.json(对象)字符串和java对象间的相互转换
//把json格式的数据转换为java对象
User u=g.fromJson(jsonString,User.class);
System.out.println(u);
//输出结果:User [name=tom, age=23, address=北京]
//java对象的信息转换为json字符串
jsonString=g.toJson(u);
System.out.println(jsonString);
//输出结果:{"name":"tom","age":23,"address":"北京"}
//2.json(数组)字符串和java对象数组间的相互转换
//把java的数组转为json格式字符串
jsonString=g.toJson(us);
System.out.println(jsonString);
//输出结果:
[
{"name":"艾迪森","age":25,"address":"北京"},
{"name":"安迪","age":23,"address":"南京"},
{"name":"托马斯","age":21,"address":"上海"},
{"name":"爱丽丝","age":22,"address":"郑州"}
]
us=null;
//把json数组中的数据转为java数组对象
us=g.fromJson(jsonString, User[].class);
for(User uu:us){
System.out.println(uu);
}
//输出结果:
User [name=艾迪森, age=25, address=北京]
User [name=安迪, age=23, address=南京]
User [name=托马斯, age=21, address=上海]
User [name=爱丽丝, age=22, address=郑州]
//3.json(数组)字符串和java泛型集合对象List间的相互转换
//把list中的元素转为json格式数组
jsonString=g.toJson(users);
System.out.println(jsonString);
//输出结果:同数组
[
{"name":"艾迪森","age":25,"address":"北京"},
{"name":"安迪","age":23,"address":"南京"},
{"name":"托马斯","age":21,"address":"上海"},
{"name":"爱丽丝","age":22,"address":"郑州"}
]
users.clear();
//把json数组中的数据转为java集合对象list
TypeToken<List<User>> typeToken=new TypeToken<List<User>>(){};
Type type=typeToken.getType();
//如果使用了泛型集合就要使用type,指定泛型的具体类型。
users=g.fromJson(jsonString,type);
for(User uu:users){
System.out.println(uu);
}
//输出结果:同数组
User [name=艾迪森, age=25, address=北京]
User [name=安迪, age=23, address=南京]
User [name=托马斯, age=21, address=上海]
User [name=爱丽丝, age=22, address=郑州]
//4.json(对象)字符串和java泛型集合对象Map间的相互转换
//把map的中的数据转为json格式
jsonString=g.toJson(maps);
System.out.println(jsonString);
//输出结果:
{
"1003":{"name":"托马斯","age":21,"address":"上海"},
"1004":{"name":"爱丽丝","age":22,"address":"郑州"},
"1001":{"name":"艾迪森","age":25,"address":"北京"},
"1002":{"name":"安迪","age":23,"address":"南京"}
}
maps.clear();
//把json数组中的数据转为java集合对象
TypeToken<Map<String,User>> typeTokenMap=new TypeToken<Map<String,User>>(){};
Type typeMap=typeTokenMap.getType();
//如果使用了泛型集合就要使用type,指定泛型的具体类型。
maps=g.fromJson(jsonString,typeMap);
for(Map.Entry<String, User> uu:maps.entrySet()){
System.out.println(uu.getValue());
}
//输出结果:
User [name=托马斯, age=21, address=上海]
User [name=爱丽丝, age=22, address=郑州]
User [name=艾迪森, age=25, address=北京]
User [name=安迪, age=23, address=南京]
本文版权归传智播客Android培训学院所有,欢迎转载,转载请注明作者出处。谢谢!
作者:传智播客Android培训学院
首发:http://www.itcast.cn/android/
相关文章推荐
- Android 关机实现
- Android Studio下JNI开发
- android xutils
- Android应用程序内存优化
- Android通过第三方登录理解oauth2.0机制
- 一种通过自动脚本抓取Android 手机log的方法
- Android开发之Activity的创建跳转及传值
- android 系统服务(service)
- Android案例
- Android动画-Drawable Animation
- 解决谷歌为Android系统提供的支持库android-support-v4。jar不能绑定查看源码的问题
- Android studio 配置出炫酷logcat颜色
- 高德地图-AndroidStadio-No implementation found for long com.autonavi.amap.mapcore.MapCore.nativeNewInsta
- Android Studio代码着色插件
- Android同步类:Mutex和Condition的使用方式
- Vungle Android和iOS SDK高级设置——方法和监听含义和对比
- Android 手机拍照适配攻略
- Android 学习笔记之十一 2048的实现分析
- IDA 调试android 遇到的问题及解决方案
- Android实现带有记住密码功能的登陆界面