Json串和字符串轉換的工具類

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

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.text.TextUtils;

import com.google.gson.Gson;
import com.wzlottery.bean.WZCPBaseType;
import com.wzlottery.utils.MyDebug;

public class JsonParaserUtils {

	/**
	 * 將字符串轉爲json
	 * 
	 * @param str
	 * @return
	 */
	public static JSONObject stringToJson(String str) {
		JSONObject mJSONObject = null;
		try {
			mJSONObject = new JSONObject(str);
		} catch (Exception e) {

		}
		return mJSONObject;
	}

	/**
	 * 將json轉爲Map
	 * 
	 * @param str
	 * @return
	 */
	public static Map<String, String> stringToMap(String json) {
		JSONObject jsonObject = null;
		Map<String, String> result = new HashMap<String, String>();
		try {
			if(!TextUtils.isEmpty(json)){
				jsonObject = new JSONObject(json);
				Iterator<String> iterator = jsonObject.keys();
				String key = null;
				String value = null;
				while (iterator.hasNext()) {
					key = iterator.next();
					value = jsonObject.getString(key);
					result.put(key, value);
				}
			}
		} catch (JSONException e) {
			e.printStackTrace();
		}
		return result;
	}

	/**
	 * 將字符串轉爲List
	 * 
	 * @param str
	 * @return
	 */
	public static List<Map<String, String>> stringToList(String str) {
		List<Map<String, String>> list = null;
		try {
			if(!TextUtils.isEmpty(str)){
				JSONArray jsonArray = new JSONArray(str);
				JSONObject jsonObject;
				list = new ArrayList<Map<String, String>>();
				for (int i = 0,j = jsonArray.length(); i < j; i++) {
					jsonObject = jsonArray.getJSONObject(i);
					list.add(stringToMap(jsonObject.toString()));
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
			MyDebug.printE("WZCP","List<Map<String, String>> stringToList(String str)");
		}
		return list;
	}
	
	/**將json數據轉換成爲對應的bean list
	 * @param str
	 * @param parser
	 * @return
	 */
	public static List<? extends WZCPBaseType> parserJsonArray(String str,Parser<? extends WZCPBaseType> parser){
		List<WZCPBaseType> list = null;
		try {
			list = new ArrayList<WZCPBaseType>();
			if(!TextUtils.isEmpty(str)){
				JSONArray jsonArray = new JSONArray(str);
				JSONObject jsonObject;
				for (int i = 0,j = jsonArray.length(); i < j; i++) {
					jsonObject = jsonArray.getJSONObject(i);
					WZCPBaseType mBean = parser.parse(jsonObject);
					list.add( mBean );
				}
			}
		} catch (Exception e) {
			WZCPBaseType mBean = parserJsonBean(str,parser);
			list.add( mBean );
			MyDebug.printE("WZCP",mBean.toString());
			e.printStackTrace();
			MyDebug.printE("WZCP","List<? extends WZCPBaseType> parserJsonArray");
		}
		return list;
	}
	
	/**將json數據轉換成爲對應的bean
	 * @param str
	 * @param parser
	 * @return
	 */
	public static WZCPBaseType parserJsonBean(String str,Parser<? extends WZCPBaseType> parser){
		try {
			JSONObject jsonObject = new JSONObject(str);
			return parser.parse(jsonObject);
		} catch (Exception e) {
			e.printStackTrace();
			MyDebug.printE("WZCP","WZCPBaseType parserJsonBean");
		}
		return null;
	}

	/**
	 * 把數據轉換成Json結構
	 * 
	 * @param mType
	 *            Object的數據,支持所有類型
	 * @return
	 */
	public static String toJsonStr(Object mType) {
		Gson mGson = new Gson();
		String mResult = mGson.toJson(mType);
		return mResult;
	}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章