详解Gson使用(四)Map对象转化

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a249900679/article/details/51386660

项目地址:

Github https://github.com/smileysx/GsonTest

Oschinahttps://git.oschina.net/ysx_xx/GsonText


详解Gson使用(一)简单对象转化

http://blog.csdn.net/a249900679/article/details/51385913

详解Gson使用(二)带泛型的List转化

http://blog.csdn.net/a249900679/article/details/51386028

详解Gson使用(三)使用注解

http://blog.csdn.net/a249900679/article/details/51386509

详解Gson使用(四)Map对象转化
http://blog.csdn.net/a249900679/article/details/51386660
详解Gson使用(五)实现百度翻译功能

http://blog.csdn.net/a249900679/article/details/51386727


接下来介绍Map对象与json的相互转换

Map类型的转换就需要用到

GsonBuilder().enableComplexMapKeySerialization().create()类生成Gson对象

1.      Map<String, String>类型的转换:

这里直接贴关键代码,其他代码可参考前两篇文章,或下载代码。

private String seven() {
	Gson gson2 = new GsonBuilder().enableComplexMapKeySerialization().create();
	Map<String, String> map = new HashMap<String, String>();
	map.put("key1", "value1");
	map.put("key2", "value2");
	map.put("key3", "value3");

	return gson2.toJson(map);
}

结果为:


把json数据转换为Map<String, String>:

private String seven() {
	Gson gson2 = new GsonBuilder().enableComplexMapKeySerialization().create();
	Map<String, String> map = new HashMap<String, String>();
	map.put("key1", "value1");
	map.put("key2", "value2");
	map.put("key3", "value3");

	String jsonString = gson.toJson(map);
	Type type = new TypeToken<Map<String, String>>() {}.getType();
	Map<String, String> map2 = gson2.fromJson(jsonString, type);

	String showString = "";
	for (String keyString : map2.keySet()) {
		showString += keyString + ":" + map2.get(keyString) + "\n-----\n";
	}

	showString += "----------------------\n";
	return showString;
}

结果为:


2.      Map<Object, String>类型的转换:

private String eight() {
	Gson gson2 = new GsonBuilder().enableComplexMapKeySerialization().create();
	Map<ToJsonBeanOne, String> map = new LinkedHashMap<ToJsonBeanOne, String>();
	map.put(new ToJsonBeanOne(1, "小熊1", 21), "value1");
	map.put(new ToJsonBeanOne(2, "小熊2", 21), "value2");
	map.put(new ToJsonBeanOne(3, "小熊3", 21), "value3");

	return gson2.toJson(map);
}


结果为:


把json数据转换为Map<Object, String>:

private String eight() {
	Gson gson2 = new GsonBuilder().enableComplexMapKeySerialization().create();
	Map<ToJsonBeanOne, String> map = new LinkedHashMap<ToJsonBeanOne, String>();
	map.put(new ToJsonBeanOne(1, "小熊1", 21), "value1");
	map.put(new ToJsonBeanOne(2, "小熊2", 21), "value2");
	map.put(new ToJsonBeanOne(3, "小熊3", 21), "value3");

	String jsonString = gson2.toJson(map);

	Type type = new TypeToken<Map<ToJsonBeanOne, String>>() {}.getType();
	Map<ToJsonBeanOne, String> map2 = gson.fromJson(jsonString, type);

	String showString = "";
	for (ToJsonBeanOne beanOne : map2.keySet()) {
		showString += "key:\n" + beanOne.toString() + "value:" + map2.get(beanOne) + "\n-----\n";
	}

	showString += "----------------------\n";
	return showString;
}

结果为:


 

3. Map<String, Object>类型的转换:

private String nine() {
	Gson gson2 = new GsonBuilder().enableComplexMapKeySerialization().create();
	Map<String, ToJsonBeanOne> map = new LinkedHashMap<String, ToJsonBeanOne>();
	map.put("key1", new ToJsonBeanOne(1, "小熊1", 21));
	map.put("key2", new ToJsonBeanOne(2, "小熊2", 21));
	map.put("key3", new ToJsonBeanOne(3, "小熊3", 21));

	return gson2.toJson(map);
}

 

结果为:


 

把json数据转换为Map<String, Object>:

private String nine() {
	Gson gson2 = new GsonBuilder().enableComplexMapKeySerialization().create();
	Map<String, ToJsonBeanOne> map = new LinkedHashMap<String, ToJsonBeanOne>();
	map.put("key1", new ToJsonBeanOne(1, "小熊1", 21));
	map.put("key2", new ToJsonBeanOne(2, "小熊2", 21));
	map.put("key3", new ToJsonBeanOne(3, "小熊3", 21));
	String jsonString = gson2.toJson(map);

	Type type = new TypeToken<Map<String, ToJsonBeanOne>>() {}.getType();
	Map<String, ToJsonBeanOne> map2 = gson.fromJson(jsonString, type);

	String showString = "";
	for (String keyString : map2.keySet()) {
		showString += "key:\n" + keyString + "\nvalue:\n" + map2.get(keyString).toString() + "-----\n";
	}

	showString += "----------------------\n";
	return showString;
}

 

结果为:



猜你喜欢

转载自blog.csdn.net/a249900679/article/details/51386660