gson java对象

阅读: 评论:0

gson java对象

gson java对象

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

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

1)jsonlib

2)Gson:google

3)fastjson:阿里巴巴

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

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(测试结果在后面注释)

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

1 packageTestJson;2

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

l.bind.UnmarshallerHandler;9

10 importorg.junit.Test;11

le.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 &#Json(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 &#Json(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 &#Json(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 &#Json(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.le.gson.flect.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.(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 = ("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.(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());

本文发布于:2024-01-31 17:20:46,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170669284630149.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:对象   gson   java
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23