[備忘]模擬生成伺服器返回JSON格式資料
為什麼寫這篇部落格?
這是一個創新時代,學習時代,新鮮事物層出不窮,需要不斷學習才能站穩腳跟。學習到一種東西后,如果不總結不復習,很快就會忘記。當有需求的時候,又得找資料,重複學習。為了讓自己不做太多的重複的看似無用的功,於是用部落格記錄下來,備忘。避免了需要時到處查資料無果的尷尬。
好了,入正題!在伺服器端開發同學還沒有寫好介面的時候,或伺服器端開發同學給出的介面不能讓你滿意的時候,你就可以通過以下的方式來自己實現介面。
方式一:
google的gson.jar中的com.google.gson.Gson.toJson(Object src)
在GSON的API中,提供了兩個重要的方法:toJson()和fromJson()方法。其中,toJson()方法用來實現將Java物件轉換為相應的JSON資料,fromJson()方法則用來實現將JSON資料轉換為相應的Java物件。
toJson()方法用於將Java物件轉換為相應的JSON資料,主要有以下幾種形式:
(1)String toJson(JsonElement jsonElement);
(2)String toJson(Object src);
(3)String toJson(Object src, Type typeOfSrc);
其中,
方法(1)用於將JsonElement物件(可以是JsonObject、JsonArray等)轉換成JSON資料;
方法(2)用於將指定的Object物件序列化成相應的JSON資料;
方法(3)用於將指定的Object物件(可以包括泛型型別)序列化成相應的JSON資料。
public String getJsonStr() { List<Person> list = new ArrayList<Person>(); Person mPerson1 = new Person(01, "tom", 22);//id,name,age Person mPerson2 = new Person(02, "rose", 24); Person mPerson3 = new Person(03, "jack", 26); list.add(mPerson1); list.add(mPerson2); list.add(mPerson3); Gson mGson = new方式二:Gson(); String jsonStr = mGson.toJson(list); return jsonStr; }
alibaba的fastjson.jar中的com.alibaba.fastjson.JSON.toJSONString(Object object)
Fastjson是一個Java語言編寫的高效能功能完善的JSON庫。fastjson採用獨創的演算法,將parse的速度提升到極致,超過所有json庫,包括曾經號稱最快的jackson。並且還超越了google的二進位制協議protocol
buf。Fastjson完全支援http://json.org的標準,也是官方網站收錄的參考實現之一。支援各種JDK型別。包括基本型別、JavaBean、Collection、Map、Enum、泛型等。支援JDK 5、JDK 6、Android、阿里雲手機等環境。
Map<String, Object> maps = new HashMap<String, Object>();List<Map<String, Object>> arrayList = new ArrayList<Map<String, Object>>();Map<String ,Object> params1 = new HashMap<String, Object>(); Map<String ,Object> params2 = new HashMap<String, Object>(); params1.put("id", 01); params1.put("name", "tom"); params1.put("url", "http://www.baidu.com"); params2.put("id", 02); params2.put("name", "jack"); params2.put("url", "http://www.google.com"); arrayList.add(params1); arrayList.add(params2); maps.put("desc", "json"); maps.put("age", "29"); maps.put("users", arrayList); String jsonStr = JSON.toJSONString(maps);
ok!兩種實現方式如上,僅供學習。