gson java对象_GSON中Java对象与JSON互相转换——(一)

json的转换插件是通过java的一些工具,直接将java对象或集合转换成json字符串。

常用的json转换工具有如下几种:

1)jsonlib

2)Gson:google

3)fastjson:阿里巴巴

------GSON操作简单,只需要一个jar包----------

tdj948KB8dwvHFKnFMe2GkuvrfPhvKIXlxvPYZFZQ4Wj6NLxy478GQcDKLYw45L62Z1PmeJjO48ePaZqmKGp7zQ9ZphP+mG4VAvYuC3HIPUSsGT+4BR9DxJqvNGfxEQqFGIZxuVwfEt9nTECRsrRP+sTntrgqXh2IQ+6BilczB51BKBTqMRjLa4XbElF5stjMwLK9HMQht8E8srNB89Znu7OOnQ0ag3mk0PUCqwJxyA0AywDkBiQLyA1IFpAbkCwgNyBZQG5AsoDcgGQBuQHJAnIDkgXkBiQLyA1IFpAbkCwgNyBZQG5AsvwLsh+etIhZt0wAAAAASUVORK5CYII=

User.java

1 packagebean;2

3 public classUser {4

5 privateString id;6 privateString name;7 private intage;8 privateString address;9 publicString getId() {10 returnid;11 }12 public voidsetId(String id) {13 this.id =id;14 }15 publicString getName() {16 returnname;17 }18 public voidsetName(String name) {19 this.name =name;20 }21 public User(String id, String name, intage, String address) {22 super();23 this.id =id;24 this.name =name;25 this.age =age;26 this.address =address;27 }28 @Override29 publicString toString() {30 return "User [id=" + id + ", name=" + name + ", age=" + age + ", address=" + address + "]";31 }32

33

34

35 }

1.测试Java对象转JSON(测试结果在后面注释)

操作简单,无论转单个对象还是集合,都是gson.toJson(obj);

1 packageTestJson;2

3 importjava.util.ArrayList;4 importjava.util.HashMap;5 importjava.util.List;6 importjava.util.Map;7

8 importjavax.xml.bind.UnmarshallerHandler;9

10 importorg.junit.Test;11

12 importcom.google.gson.Gson;13

14 importbean.User;15

16 public classBean2JSON {17

18 //测试单个对象转JSON

19 @Test20 public voidtest1(){21 User user = new User("1", "QIAOZHI",25,"山西太原");22 Gson gson = newGson();23 String json =gson.toJson(user);24 System.out.println(json); //{"id":"1","name":"QIAOZHI","age":25,"address":"山西太原"}

25 }26

27

28

29 //测试list转JSON

30 @Test31 public voidtest2(){32 List list = new ArrayList();33 list.add(new User("1", "QIAOZHI",25,"山西太原"));34 list.add(new User("2", "QIAOZHI",25,"山西太原"));35 list.add(new User("3", "QIAOZHI",25,"山西太原"));36 Gson gson = newGson();37 String json =gson.toJson(list);38 System.out.println(json);39 //[{"id":"1","name":"QIAOZHI","age":25,"address":"山西太原"},{"id":"2","name":"QIAOZHI","age":25,"address":"山西太原"},{"id":"3","name":"QIAOZHI","age":25,"address":"山西太原"}]

40 }41

42 //测试map对象转JSON

43 @Test44 public voidtest3(){45 Map map = new HashMap();46 map.put("1", new User("1", "QIAOZHI",25,"山西太原"));47 map.put("2", new User("2", "QIAOZHI",25,"山西太原"));48 map.put("3", new User("3", "QIAOZHI",25,"山西太原"));49 Gson gson = newGson();50 String json =gson.toJson(map);51 System.out.println(json);52 //{"3":{"id":"3","name":"QIAOZHI","age":25,"address":"山西太原"},"2":{"id":"2","name":"QIAOZHI","age":25,"address":"山西太原"},"1":{"id":"1","name":"QIAOZHI","age":25,"address":"山西太原"}}

53 }54

55 //测试list对象转JSON

56 @Test57 public voidtest4(){58 List> list = new ArrayList<>();59 Map map1 = new HashMap();60 Map map2 = new HashMap();61 map1.put("map11", new User("1", "QIAOZHI",25,"山西太原"));62 map1.put("map12", new User("2", "QIAOZHI",25,"山西太原"));63 map2.put("21", new User("11", "QIAOZHI",25,"山西太原"));64 map2.put("22", new User("21", "QIAOZHI",25,"山西太原"));65 list.add(map1);66 list.add(map2);67 Gson gson = newGson();68 String json =gson.toJson(list);69 System.out.println(json);70 //[{"map12":{"id":"2","name":"QIAOZHI","age":25,"address":"山西太原"},"map11":{"id":"1","name":"QIAOZHI","age":25,"address":"山西太原"}},{"21":{"id":"11","name":"QIAOZHI","age":25,"address":"山西太原"},"22":{"id":"21","name":"QIAOZHI","age":25,"address":"山西太原"}}]

71 }72

73 }

2.测试Json转Java对象与集合(测试结果在后面注释)

packageTestJson_GSON;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;importjava.util.Map;importorg.junit.Test;importcom.google.gson.Gson;importcom.google.gson.reflect.TypeToken;public classJSON2Bean {//测试json转单个对象

@Testpublic voidtest1(){

String json= "{'id':'1','name':'QIAOZHI','age':25,'address':'山西太原'}";

Gson gson= newGson();

User user= gson.fromJson(json, User.class);

System.out.println(user);//User [id=1, name=QIAOZHI, age=25, address=山西太原]

}//测试JSON转list

@SuppressWarnings("unchecked")

@Testpublic voidtest2(){

String json= "[{'id':'1','name':'QIAOZHI','age':25,'address':'山西太原'},{'id':'2','name':'QIAOZHI','age':25,'address':'山西太原'},{'id':'3','name':'QIAOZHI','age':25,'address':'山西太原'}]";

List list = new ArrayList();

Gson gson= newGson();

list= (List) gson.fromJson(json, new TypeToken>(){}.getType());

System.out.println(list);for(User user:list){

System.out.println(user);

}//[{id=1, name=QIAOZHI, age=25.0, address=山西太原}, {id=2, name=QIAOZHI, age=25.0, address=山西太原}, {id=3, name=QIAOZHI, age=25.0, address=山西太原}]

System.out.println(list.get(1));//{id=2, name=QIAOZHI, age=25.0, address=山西太原}

}//测试JSON转Map

@Testpublic voidtest3(){

String json= "{'3':{'id':'3','name':'QIAOZHI','age':25,'address':'山西太原'},'2':{'id':'2','name':'QIAOZHI','age':25,'address':'山西太原'},'1':{'id':'1','name':'QIAOZHI','age':25,'address':'山西太原'}}";

Map map = new HashMap();

Gson gson= newGson();

map= (Map) gson.fromJson(json, new TypeToken>(){}.getType());

System.out.println(map);//{3={id=3, name=QIAOZHI, age=25.0, address=山西太原}, 2={id=2, name=QIAOZHI, age=25.0, address=山西太原}, 1={id=1, name=QIAOZHI, age=25.0, address=山西太原}}

User user = map.get("1");

System.out.println(user);//{id=1, name=QIAOZHI, age=25.0, address=山西太原}

}//测试JSON转list对象

@SuppressWarnings("unchecked")

@Testpublic voidtest4(){

String json= "[{'map12':{'id':'2','name':'QIAOZHI','age':25,'address':'山西太原'},'map11':{'id':'1','name':'QIAOZHI','age':25,'address':'山西太原'}},{'21':{'id':'11','name':'QIAOZHI','age':25,'address':'山西太原'},'22':{'id':'21','name':'QIAOZHI','age':25,'address':'山西太原'}}]";

List> list = new ArrayList<>();

Gson gson= newGson();

list= gson.fromJson(json, new TypeToken>>(){}.getType());

System.out.println(list);//[{map12={id=2, name=QIAOZHI, age=25.0, address=山西太原}, map11={id=1, name=QIAOZHI, age=25.0, address=山西太原}}, {21={id=11, name=QIAOZHI, age=25.0, address=山西太原}, 22={id=21, name=QIAOZHI, age=25.0, address=山西太原}}]

System.out.println(list.get(1));//{21={id=11, name=QIAOZHI, age=25.0, address=山西太原}, 22={id=21, name=QIAOZHI, age=25.0, address=山西太原}}

}

}

注意:

json转普通的Javabean只需要两个简单的参数,第一个是json字符串,第二个是需要转换对象的类型。

User user = gson.fromJson(json, User.class);

json转集合与map类型需要使用了TypeToken,它是gson提供的数据类型转换器,可以支持各种数据集合类型转换。也就是通知GSON将json转为那种集合

list = (List) gson.fromJson(json, new TypeToken>(){}.getType());

map = (Map) gson.fromJson(json, new TypeToken>(){}.getType());

list = gson.fromJson(json, new TypeToken>>(){}.getType());

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值