zoukankan      html  css  js  c++  java
  • Gson转Map

    使用google的Gson包。把json字符串转成Map<String,Object>以及List<Object>对象,记得下载Gson包,

    我使用的是gson-2.1.jar

    Gson下载地址:gson-2.1.jar

    以下是源代码:

    package com.test;
    
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Map;
    import java.util.Map.Entry;
    import java.util.Set;
    
    import com.google.gson.JsonArray;
    import com.google.gson.JsonElement;
    import com.google.gson.JsonObject;
    import com.google.gson.JsonParser;
    
    /**
     * 使用Gson把json字符串转成Map
     * @author lianqiang
     * @date 2014/06/12
     */
    public class JsonToMap {
    	
    	/**
    	 * 获取JsonObject
    	 * @param json
    	 * @return
    	 */
    	public static JsonObject parseJson(String json){
    		JsonParser parser = new JsonParser();
    	    JsonObject jsonObj = parser.parse(json).getAsJsonObject();
    		return jsonObj;
    	}
    	
    	/**
    	 * 依据json字符串返回Map对象
    	 * @param json
    	 * @return
    	 */
    	public static Map<String,Object> toMap(String json){
    		return JsonToMap.toMap(JsonToMap.parseJson(json));
    	}
    	
    	/**
    	 * 将JSONObjec对象转换成Map-List集合
    	 * @param json
    	 * @return
    	 */
    	public static Map<String, Object> toMap(JsonObject json){
    	    Map<String, Object> map = new HashMap<String, Object>();
    	    Set<Entry<String, JsonElement>> entrySet = json.entrySet();
    	    for (Iterator<Entry<String, JsonElement>> iter = entrySet.iterator(); iter.hasNext(); ){
    	    	Entry<String, JsonElement> entry = iter.next();
    	    	String key = entry.getKey();
    	    	Object value = entry.getValue();
    	        if(value instanceof JsonArray)
    	            map.put((String) key, toList((JsonArray) value));
    	        else if(value instanceof JsonObject)
    	            map.put((String) key, toMap((JsonObject) value));
    	        else
    	            map.put((String) key, value);
    	    }
    	    return map;
    	}
    	
    	/**
    	 * 将JSONArray对象转换成List集合
    	 * @param json
    	 * @return
    	 */
    	public static List<Object> toList(JsonArray json){
    	    List<Object> list = new ArrayList<Object>();
    	    for (int i=0; i<json.size(); i++){
    	    	Object value = json.get(i);
    	    	if(value instanceof JsonArray){
    	            list.add(toList((JsonArray) value));
    	    	}
    	        else if(value instanceof JsonObject){
    	            list.add(toMap((JsonObject) value));
    	        }
    	        else{
    	            list.add(value);
    	        }
    	    }
    	    return list;
    	}
    
    }
    


  • 相关阅读:
    Linux服务器安全审计工具与流程完全指南
    谈谈站桩
    Django Push 的一些资料
    Angularjs $http服务的两个request安全问题
    Ubuntu本地uwsgi配Django问题的解决
    Angularjs Post传值后台收不到的原因
    Flex实现双轴条状图
    时间序列学习笔记
    Nuget公布Dll
    【小游戏】有意思的小游戏集合
  • 原文地址:https://www.cnblogs.com/zsychanpin/p/6937832.html
Copyright © 2011-2022 走看看