Gson 常用用法

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之间的相互转换

假如现在有个对象Person
public class Person {
	int age;
	String name;
	public Person(int age , String name) {
		// TODO Auto-generated constructor stub
		this.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常用的用法大概就是这样。







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值