谷歌GSON的字符与对象的互转

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.google.common.reflect.TypeToken;
import com.google.gson.Gson;

/**
 * 〈一句话功能简述〉<br> 
 * 〈功能详细描述〉
 *
 * @author yangzhilong
 * @see [相关类/方法](可选)
 * @since [产品/模块版本] (可选)
 */
public class MyTest {
    
    @SuppressWarnings("serial")
    public static void main(String[] args) {
        //对象转JSON字符串
        Map<String,String> map = new HashMap<String,String>();
        map.put("key", "value");
        
        List<String> list = new ArrayList<String>();
        list.add("obj1");
        
        System.out.println(new Gson().toJson(map));
        System.out.println(new Gson().toJson(list));
        
        //JSON转对象
        String mapJson = "{\"key1\":\"value1\"}";
        map = new Gson().fromJson(mapJson, new TypeToken<Map<String,String>>(){}.getType());
        System.out.println(map.get("key1"));
        
        String listJson = "[\"obj22\",\"obj33\",\"obj44\"]";
        list = new Gson().fromJson(listJson, new TypeToken<List<String>>(){}.getType());
        System.out.println(list.get(1));
        
        
        //普通对象直接使用class标识就能转换了
        //new Gson().fromJson("json String", xxxObject.class);
    }
}

 运行结果:

{"key":"value"}
["obj1"]
value1
obj33

 

posted @ 2015-05-20 15:11  自行车上的程序员  阅读(555)  评论(0编辑  收藏  举报