這是小緋近幾天來的研究
主要是因為針對資料庫欄位,不適合接受多方的參數命名來定義資料庫欄位
畢竟一家公司就有一個參數命名,那 N 家公司就有 N 個,如果想針對每家都加一個欄位,這是吃力不討好的事情
本來是透過字串切割的方式來處理此事情,後來在友人的建議下更改為使用Json格式,說穿了Json就很類似 Map物件
今天要針對json格式字串轉譯成自定義宣告
import java.lang.reflect.Type;
import com.google.gson.reflect.TypeToken;
Type type = new TypeToken<自定義型別, Map, List .....>( ) { }.getType( );
2.再來進行寫回動作
import com.google.gson.Gson;
自定義型別 變數 = Gson.fromJson( "Json格式字串" , type);
透過這種方式,就可以將json物件轉型成自己想要的宣告,當然前提格式要剛好能符合,才能成功的轉型
官方範例:
主要是因為針對資料庫欄位,不適合接受多方的參數命名來定義資料庫欄位
畢竟一家公司就有一個參數命名,那 N 家公司就有 N 個,如果想針對每家都加一個欄位,這是吃力不討好的事情
本來是透過字串切割的方式來處理此事情,後來在友人的建議下更改為使用Json格式,說穿了Json就很類似 Map物件
今天要針對json格式字串轉譯成自定義宣告
1.首先,你要定義一個想寫回的型別
import java.lang.reflect.Type;
import com.google.gson.reflect.TypeToken;
Type type = new TypeToken<自定義型別, Map, List .....>( ) { }.getType( );
2.再來進行寫回動作
import com.google.gson.Gson;
自定義型別 變數 = Gson.fromJson( "Json格式字串" , type);
透過這種方式,就可以將json物件轉型成自己想要的宣告,當然前提格式要剛好能符合,才能成功的轉型
官方範例:
Type listType = new TypeToken>() {}.getType(); List
target = new LinkedList (); target.add("blah"); Gson gson = new Gson(); String json = gson.toJson(target, listType); List target2 = gson.fromJson(json, listType);
參考連結:http://google-gson.googlecode.com/svn/tags/1.2.3/docs/javadocs/com/google/gson/Gson.html
沒有留言:
張貼留言