使用Gson实现Json和Java对象的转换
2016-11-11 09:07
591 查看
转:http://forestqqqq.iteye.com/blog/1942328?utm_source=tuicool&utm_medium=referral
Gson是Google的开源项目(项目主页:https://code.google.com/p/google-gson/),
Gson在线帮助文档:http://google-gson.googlecode.com/svn/trunk/gson/docs/javadocs/index.html
Gson包下载地址:https://google-gson.googlecode.com/files/google-gson-2.2.4-release.zip
示例:
Java代码
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
class User{
public User(String name,int age,StringBuffer sex,boolean isChild){
this.name = name;
this.age = age;
this.sex = sex;
this.isChild = isChild;
}
private String name;
private int age;
private StringBuffer sex;
private boolean isChild;
public String toString(){
return "{name="+name+";age="+age+";sex="+sex+";isChild="+isChild+"}";
}
public int hashCode(){
return name.hashCode()*100+age;
}
}
public class GsonTest {
public static void main(String[] args) {
Gson gson = new Gson();
System.out.println("1普通的Bean的转换**************************");
System.out.println("将一个Bean转换成为json字符串->");
User user1 = new User("凤姐",12,new StringBuffer("未知"),true);
System.out.println("转换之前的user1"+user1);
String json = gson.toJson(user1);
System.out.println("User对象转换成为Json字符串,json==="+json);
System.out.println("***************************");
System.out.println("将一个json字符串转换成为Bean->");
User user2 = gson.fromJson(json, User.class);
System.out.println("转换成为的user2=="+user2);
System.out.println();
System.out.println("2Collection集合的转换**************************");
System.out.println("将一个Bean的List集合转换成为json字符串->");
Collection<User> userList1 = new ArrayList<User>();
for(int i=0;i<3;i++){
User user = new User("如花",10+i,new StringBuffer("男"),false);
userList1.add(user);
}
json = gson.toJson(userList1);
System.out.println("User的List集合对象转换成为Json字符串,json==="+json);
System.out.println("***************************");
System.out.println("将一个json字符串转换成为Bean的List集合->");
Collection<User> userList2 =
gson.fromJson(json,
new TypeToken<Collection<User>>(){}.getType());
System.out.println("转换成为的User的List集合,userList2="+userList2);
System.out.println();
System.out.println("3Array数组的转换**************************");
System.out.println("将一个Bean的Array数组转换成为json字符串->");
User [] userArray1 = new User[3];
for(int i=0;i<userArray1.length;i++){
userArray1[i] = new User("芙蓉",20,new StringBuffer("人妖"),true);
}
json = gson.toJson(userArray1);
System.out.println("User的数组对象转换成为Json字符串,json==="+json);
System.out.println("***************************");
System.out.println("将一个json字符串转换成为Bean的数组对象->");
User [] userArray2 = gson.fromJson(json, new TypeToken<User[]>(){}.getType());
System.out.println("转换成为的User的数组对象,userArray2="+Arrays.toString(userArray2));
System.out.println();
System.out.println("4Map的转换**************************");
System.out.println("将一个Bean的Map转换成为json字符串->");
Map<String,User> map1 = new HashMap<String,User>();
for(int i=0;i<3;i++){
map1.put(""+(i+10), userArray1[i]);
}
json = gson.toJson(map1);
System.out.println("User的Map集合转换成为Json字符串,json==="+json);
System.out.println("***************************");
System.out.println("将一个json字符串转换成为Bean的数组对象->");
Map<String,User> map2 =
gson.fromJson(json,
new TypeToken<Map<String,User>>(){}.getType());
System.out.println("转换成为的User的数组对象,map2=="+map2);
}
}
运行结果:
Java代码
1普通的Bean的转换**************************
将一个Bean转换成为json字符串->
转换之前的user1{name=凤姐;age=12;sex=未知;isChild=true}
User对象转换成为Json字符串,json==={"name":"凤姐","age":12,"sex":"未知","isChild":true}
***************************
将一个json字符串转换成为Bean->
转换成为的user2=={name=凤姐;age=12;sex=未知;isChild=true}
2Collection集合的转换**************************
将一个Bean的List集合转换成为json字符串->
User的List集合对象转换成为Json字符串,json===[{"name":"如花","age":10,"sex":"男","isChild":false},{"name":"如花","age":11,"sex":"男","isChild":false},{"name":"如花","age":12,"sex":"男","isChild":false}]
***************************
将一个json字符串转换成为Bean的List集合->
转换成为的User的List集合,userList2=[{name=如花;age=10;sex=男;isChild=false}, {name=如花;age=11;sex=男;isChild=false}, {name=如花;age=12;sex=男;isChild=false}]
3Array数组的转换**************************
将一个Bean的Array数组转换成为json字符串->
User的数组对象转换成为Json字符串,json===[{"name":"芙蓉","age":20,"sex":"人妖","isChild":true},{"name":"芙蓉","age":20,"sex":"人妖","isChild":true},{"name":"芙蓉","age":20,"sex":"人妖","isChild":true}]
***************************
将一个json字符串转换成为Bean的数组对象->
转换成为的User的数组对象,userArray2=[{name=芙蓉;age=20;sex=人妖;isChild=true}, {name=芙蓉;age=20;sex=人妖;isChild=true}, {name=芙蓉;age=20;sex=人妖;isChild=true}]
4Map的转换**************************
将一个Bean的Map转换成为json字符串->
User的Map集合转换成为Json字符串,json==={"10":{"name":"芙蓉","age":20,"sex":"人妖","isChild":true},"11":{"name":"芙蓉","age":20,"sex":"人妖","isChild":true},"12":{"name":"芙蓉","age":20,"sex":"人妖","isChild":true}}
***************************
将一个json字符串转换成为Bean的数组对象->
转换成为的User的数组对象,map2=={10={name=芙蓉;age=20;sex=人妖;isChild=true}, 11={name=芙蓉;age=20;sex=人妖;isChild=true}, 12={name=芙蓉;age=20;sex=人妖;isChild=true}}
参考文章:
http://qindongliang1922.iteye.com/blog/1915710
http://www.cnblogs.com/happyPawpaw/archive/2012/10/23/2735697.html
http://zhiweiofli.iteye.com/blog/1684236
Gson是Google的开源项目(项目主页:https://code.google.com/p/google-gson/),
Gson在线帮助文档:http://google-gson.googlecode.com/svn/trunk/gson/docs/javadocs/index.html
Gson包下载地址:https://google-gson.googlecode.com/files/google-gson-2.2.4-release.zip
示例:
Java代码
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
class User{
public User(String name,int age,StringBuffer sex,boolean isChild){
this.name = name;
this.age = age;
this.sex = sex;
this.isChild = isChild;
}
private String name;
private int age;
private StringBuffer sex;
private boolean isChild;
public String toString(){
return "{name="+name+";age="+age+";sex="+sex+";isChild="+isChild+"}";
}
public int hashCode(){
return name.hashCode()*100+age;
}
}
public class GsonTest {
public static void main(String[] args) {
Gson gson = new Gson();
System.out.println("1普通的Bean的转换**************************");
System.out.println("将一个Bean转换成为json字符串->");
User user1 = new User("凤姐",12,new StringBuffer("未知"),true);
System.out.println("转换之前的user1"+user1);
String json = gson.toJson(user1);
System.out.println("User对象转换成为Json字符串,json==="+json);
System.out.println("***************************");
System.out.println("将一个json字符串转换成为Bean->");
User user2 = gson.fromJson(json, User.class);
System.out.println("转换成为的user2=="+user2);
System.out.println();
System.out.println("2Collection集合的转换**************************");
System.out.println("将一个Bean的List集合转换成为json字符串->");
Collection<User> userList1 = new ArrayList<User>();
for(int i=0;i<3;i++){
User user = new User("如花",10+i,new StringBuffer("男"),false);
userList1.add(user);
}
json = gson.toJson(userList1);
System.out.println("User的List集合对象转换成为Json字符串,json==="+json);
System.out.println("***************************");
System.out.println("将一个json字符串转换成为Bean的List集合->");
Collection<User> userList2 =
gson.fromJson(json,
new TypeToken<Collection<User>>(){}.getType());
System.out.println("转换成为的User的List集合,userList2="+userList2);
System.out.println();
System.out.println("3Array数组的转换**************************");
System.out.println("将一个Bean的Array数组转换成为json字符串->");
User [] userArray1 = new User[3];
for(int i=0;i<userArray1.length;i++){
userArray1[i] = new User("芙蓉",20,new StringBuffer("人妖"),true);
}
json = gson.toJson(userArray1);
System.out.println("User的数组对象转换成为Json字符串,json==="+json);
System.out.println("***************************");
System.out.println("将一个json字符串转换成为Bean的数组对象->");
User [] userArray2 = gson.fromJson(json, new TypeToken<User[]>(){}.getType());
System.out.println("转换成为的User的数组对象,userArray2="+Arrays.toString(userArray2));
System.out.println();
System.out.println("4Map的转换**************************");
System.out.println("将一个Bean的Map转换成为json字符串->");
Map<String,User> map1 = new HashMap<String,User>();
for(int i=0;i<3;i++){
map1.put(""+(i+10), userArray1[i]);
}
json = gson.toJson(map1);
System.out.println("User的Map集合转换成为Json字符串,json==="+json);
System.out.println("***************************");
System.out.println("将一个json字符串转换成为Bean的数组对象->");
Map<String,User> map2 =
gson.fromJson(json,
new TypeToken<Map<String,User>>(){}.getType());
System.out.println("转换成为的User的数组对象,map2=="+map2);
}
}
运行结果:
Java代码
1普通的Bean的转换**************************
将一个Bean转换成为json字符串->
转换之前的user1{name=凤姐;age=12;sex=未知;isChild=true}
User对象转换成为Json字符串,json==={"name":"凤姐","age":12,"sex":"未知","isChild":true}
***************************
将一个json字符串转换成为Bean->
转换成为的user2=={name=凤姐;age=12;sex=未知;isChild=true}
2Collection集合的转换**************************
将一个Bean的List集合转换成为json字符串->
User的List集合对象转换成为Json字符串,json===[{"name":"如花","age":10,"sex":"男","isChild":false},{"name":"如花","age":11,"sex":"男","isChild":false},{"name":"如花","age":12,"sex":"男","isChild":false}]
***************************
将一个json字符串转换成为Bean的List集合->
转换成为的User的List集合,userList2=[{name=如花;age=10;sex=男;isChild=false}, {name=如花;age=11;sex=男;isChild=false}, {name=如花;age=12;sex=男;isChild=false}]
3Array数组的转换**************************
将一个Bean的Array数组转换成为json字符串->
User的数组对象转换成为Json字符串,json===[{"name":"芙蓉","age":20,"sex":"人妖","isChild":true},{"name":"芙蓉","age":20,"sex":"人妖","isChild":true},{"name":"芙蓉","age":20,"sex":"人妖","isChild":true}]
***************************
将一个json字符串转换成为Bean的数组对象->
转换成为的User的数组对象,userArray2=[{name=芙蓉;age=20;sex=人妖;isChild=true}, {name=芙蓉;age=20;sex=人妖;isChild=true}, {name=芙蓉;age=20;sex=人妖;isChild=true}]
4Map的转换**************************
将一个Bean的Map转换成为json字符串->
User的Map集合转换成为Json字符串,json==={"10":{"name":"芙蓉","age":20,"sex":"人妖","isChild":true},"11":{"name":"芙蓉","age":20,"sex":"人妖","isChild":true},"12":{"name":"芙蓉","age":20,"sex":"人妖","isChild":true}}
***************************
将一个json字符串转换成为Bean的数组对象->
转换成为的User的数组对象,map2=={10={name=芙蓉;age=20;sex=人妖;isChild=true}, 11={name=芙蓉;age=20;sex=人妖;isChild=true}, 12={name=芙蓉;age=20;sex=人妖;isChild=true}}
参考文章:
http://qindongliang1922.iteye.com/blog/1915710
http://www.cnblogs.com/happyPawpaw/archive/2012/10/23/2735697.html
http://zhiweiofli.iteye.com/blog/1684236
相关文章推荐
- 使用Gson或者GsonBuilder实现JSON和Java对象之间的转换
- java对象和json数据转换实现方式2-使用gson实现
- 使用Gson将Java对象转换为Json
- java对象和json数据转换实现方式1-使用json-lib实现
- Android 使用GSON解析JSON 并转换为JAVA对象
- java对象和json数据转换实现方式3-使用jackson实现
- Android开发-进阶:Json字符串转换为java对象的各种实现方法[json_lib框架、Gson、org.json]
- 使用Gson将Java对象转换为Json
- GSON实现Java对象与JSON格式对象相互转换的完全教程
- SpringMVC中使用@RequestBody,@ResponseBody注解实现Java对象和XML/JSON数据自动转换(下)
- Gson实现 java对象和json互相转换
- 使用Jackson来实现Java对象与JSON的相互转换的教程
- 【转】使用Gson将Java对象转换为Json
- SpringMVC中使用@RequestBody,@ResponseBody注解实现Java对象和XML/JSON数据自动转换(上)
- 使用Google的Gson实现对象和json字符串之间的转换
- SpringMVC中使用@RequestBody,@ResponseBody注解实现Java对象和XML/JSON数据自动转换(下)
- Json——使用Json jar包实现Json字符串与Java对象或集合之间的互相转换
- 使用Google的Gson实现对象和json字符串之间的转换
- 百度天气api开发 全解析xml和json格式 使用json-lib jsonObject、 Gson 方式把json 转换成 java对象
- 使用Gson将Java对象转换为JSON