Gson 常用用法

来源:互联网 发布:大宗商品数据终端 编辑:程序博客网 时间:2024/06/09 13:42

Gson下载的话大家可以去网上找下,下载jar加入到项目工程就可以使用。本文主要讲Gson一些常用用法。

toJson就是转为Json,fromJson就是解析Json。

有:

一.数组类型与Gson之间的相互转换

二.Bean对象 与Gson之间的相互转换

三.List集合类型与 Json 转换

四.Map与Gson,和List差不多


一.数组类型与Gson之间的相互转换

Gson gson = new Gson();int[] ints = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };String[] strings= { "Onw", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten" };String intsJson = gson.toJson(ints);String stringsJson = gson.toJson(strings);System.out.println("intsJson --->>> " + intsJson);System.out.println("stringsJson --->>> " + stringsJson);输出结果为intsJson --->>> [1,2,3,4,5,6,7,8,9,10]stringsJson --->>> ["Onw","Two","Three","Four","Five","Six","Seven","Eight","Nine","Ten"]

好像没什么变化,数组类型与Json间用的比较少。继续看下面

二.Bean对象 与Gson之间的相互转换

假如现在有个对象Personpublic class Person {int age;String name;public Person(int age , String name) {// TODO Auto-generated constructor stubthis.age = age;this.name = name;}}

然后

Gson gson = new Gson();Person person = new Person(23 , "Hong");String personJson = gson.toJson(person);System.out.println("PersonJson --->>>" + personJson);输出 PersonJson --->>>{"age":23,"name":"Hong"}然后要把Json转为对象的话。这里\" 才表示一个双引号Person personFromJson = gson.fromJson("{\"age\":23,\"name\":\"Hong\"}" , Person.class);


三.List集合类型与 Json 转换

List<Person> list = new ArrayList<Person>();for(int i = 0 ; i < 5 ; i++){list.add(new Person(i, "Hong" + i + i));}String listJson = gson.toJson(list);System.out.println("List >>--" + listJson );输出结果为:List>>--[{"age":0,"name":"Hong00"},{"age":1,"name":"Hong11"},{"age":2,"name":"Hong22"},{"age":3,"name":"Hong33"},{"age":4,"name":"Hong44"}]是不是感觉很好用!
List的JSON再转为List<> 的话 ,需要用到 Type .Type 为 java.lang.reflect.Type 包下的  Type type = new TypeToken<List<Person>>(){}.getType();        List<Person> personList = gson.fromJson(listJson , type);        for (Person person : personList) {            System.out.println("person age  = " + person.age);        }输出结果就不贴了

四.Map与Gson,和List差不多

Map<String, String> colours = new HashMap<String, String>();        colours.put("BLACK", "#000000");        colours.put("RED", "#FF0000");        colours.put("GREEN", "#008000");           String mapJson = gson.toJson(colours);        System.out.println("MapJson = " + mapJson);输出结果MapJson = {"RED":"#FF0000","BLACK":"#000000","GREEN":"#008000"}


Json转为Map

Type type = new TypeToken<Map<String, String>>(){}.getType();        Map<String, String> map = gson.fromJson(mapJson, type);        for (String key : map.keySet()) {            System.out.println("map.get = " + map.get(key));        }

细心对比发现主要是TypeToke里面参数变了另一个而已。

Gson常用的用法大概就是这样。







1 0
原创粉丝点击