转载请出自出处:http://eksliang.iteye.com/blog/2175532
一、概述
Map保存的是键值对的形式,Json的格式也是键值对的,所以正常情况下,map跟json之间的转换应当是理所当然的事情。
二、Map参考实例
package com.ickes.json;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
import com.ickes.json.daomain.User;
/**
* Gson对Map的处理
* @author Ickes
*
*/
public class MapTest {
public static void main(String[] args) {
/**
* 普通map处理
*/
Map<String,String> map = new HashMap<String,String>();
map.put("name","ickes");
map.put("pwd", "123");
Gson gson = new GsonBuilder()
.enableComplexMapKeySerialization()
.setPrettyPrinting()
.setDateFormat("yyyy-MM-dd HH:mm:ss")
.create();
//map的序列化
String json=gson.toJson(map);
System.out.println("map的序列化:\n"+json);
//map的反序列化
Type typeMap = new TypeToken<Map<String,String>>(){}.getType();
map = gson.fromJson(json,typeMap);
System.out.println("map的反序列化:");
for (Map.Entry<String,String> entry: map.entrySet()) {
System.out.println(entry.getKey()+"-"+entry.getValue());
}
/**
* /map对象测试
*/
Map<String,User> mapUser = new HashMap<String,User>();
User user1 = new User("A001", "xl","xl_123",24,12000F,new Date());
User user2 = new User("A002", "x2","xl_223",24,13000F,new Date