package cn.net.cpzslibs.prot.utils;

import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.google.gson.reflect.TypeToken;

import java.util.List;
import java.util.Map;

/**
 * 使用Gson把json字符串转成Map和list<Map>
 * 
 * @author zwj
 * @date 2015/04/25
 */
public class JsonToMap {

	/**
	 * 将JSONArray对象转换成List集合 <br/>
	 * 2015-5-6下午4:45:53
	 * 
	 * @param jsonArray
	 * @return
	 */
	public static List<Map<String, String>> toListMap(String jsonArray) {
		Gson gson = new Gson();
		return gson.fromJson(jsonArray,
				new TypeToken<List<Map<String, String>>>() {
				}.getType());
	}

	/**
	 * 将JSONArray对象转换成List集合<br/>
	 * 获取第一项目，主要应对公司的特殊json数据，[{"code":"3390","companyTel":""}]
	 * 
	 * @param json
	 * @return
	 */
	public static Map<String, String> toListFirstMap(String jsonArray) {
		return toListMap(jsonArray).get(0);
	}

	public static Map<String, String> toMap(String json) {
		Gson gson = new Gson();
		return gson.fromJson(json, new TypeToken<Map<String, String>>() {
		}.getType());
	}
	/**
	 * 获取JsonObject
	 * 
	 * @param json
	 * @return
	 */
	public static JsonObject parseJson(String json) {
		JsonParser parser = new JsonParser();
		JsonObject jsonObj = parser.parse(json).getAsJsonObject();
		return jsonObj;
	}
}