gson泛型 解決所有數據解析問題

http://blog.csdn.net/wanghao200906/article/details/41944761

解析 json一直用gson

突然出現了這個問題


類是這樣的 很簡單 但每個類都沒有關聯性 


這樣寫代碼太垃圾了。。複用性在哪裏。。

所以打算用一個通用的方法 ,網上查 自己寫 出現啦這三種方法

public static <T> List<T> getList(String jsonString, Class<T> cls) {
		List<T> list = new ArrayList<T>();
		try {
			Gson gson = new Gson();
			if (jsonString != null && jsonString.length() > 0) {
				list.add((T) gson.fromJson(jsonString,
						new TypeToken<List<T>>() {
						}.getType()));
			}

		} catch (Exception e) {
		}
		return list;
	}

	public static <T> T getPerson(String jsonString, Class<T> cls) {
		T t = null;
		try {
			Gson gson = new Gson();
			t = gson.fromJson(jsonString, cls);
		} catch (Exception e) {
			// TODO: handle exception
		}
		return t;
	}

	public static <T> List<T> getListType(Class<T> clazz, String json) {
		Type type = new TypeToken<List<T>>() {
		}.getType();
		Gson gson = new Gson();
		List<T> list = gson.fromJson(json, type);
		return list;
	}

主函數調用方法是這樣的

	List<PlayItem> l = Gsons.getList(json, PlayItem.class);
			System.out.println("l.getsize:" + l.size());
			System.out.println("l.getname" + l.get(0).getChannelName());
可以確定json是完全沒問題的。。完全可用。

報錯如下


可見 是 得到了這個數組 但是 對應關係 有問題。。一直不知道怎麼解決 有大神看到  請幫我解決一下


下面是 fastjson解決了這個問題

http://download.csdn.net/detail/wanghao200906/8262245地址

只用這一句代碼就可以了

List<PlayItem> plist = JSON.parseArray(json, PlayItem.class);


當然了那個gson泛型解析的問題 依然沒有解決 希望有知道的告訴我


/**************************************華麗的分割線*********************************************************/

去年彩筆的我貌似年泛型都沒理解,哎。

現在gson搞定了。其實代碼很簡單。反正我不知道當初網上找了那麼多 都不成功 是爲什麼 反正 我這個方法是 分分鐘了。

package com.example.gson解析;

import com.google.gson.Gson;

public class GsonUtils {

	public static<T> T jsonToBean(String jsonResult,Class<T> clz){
		Gson gson = new Gson();
		T t = gson.fromJson(jsonResult, clz);
		return t;
	}

}

時隔那麼久又用到了gson,但是 你大爺還是你大爺 ,我已經不是當年的我了

同時呢,又發現了 fastjson的 問題,就是當我解析的每個 item的名字如果首字母大寫 也會出現問題。 所以還是用gson靠譜



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