日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

2.FastJson公司--阿里巴巴开源的速度最快的Json和对象转换工具

發(fā)布時(shí)間:2025/3/21 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2.FastJson公司--阿里巴巴开源的速度最快的Json和对象转换工具 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

轉(zhuǎn)自:https://blog.csdn.net/gongpulin/article/details/52062532

這是關(guān)于FastJson的一個(gè)使用Demo,在Java環(huán)境下驗(yàn)證的

?

這是關(guān)于FastJson的一個(gè)使用Demo,在Java環(huán)境下驗(yàn)證的

?

[java]?view plain?copy
  • class?User{??
  • ????private?int?id;??
  • ????private?String?name;??
  • ????public?int?getId()?{??
  • ????????return?id;??
  • ????}??
  • ????public?void?setId(int?id)?{??
  • ????????this.id?=?id;??
  • ????}??
  • ????public?String?getName()?{??
  • ????????return?name;??
  • ????}??
  • ????public?void?setName(String?name)?{??
  • ????????this.name?=?name;??
  • ????}??
  • }??
  • [java]?view plain?copy
  • import?java.util.ArrayList;??
  • import?java.util.List;??
  • ??
  • class?Group{??
  • ????private?int?id;??
  • ????private?String?name;??
  • ????private?List<User>?list?=?new?ArrayList<User>();??
  • ????public?int?getId()?{??
  • ????????return?id;??
  • ????}??
  • ????public?void?setId(int?id)?{??
  • ????????this.id?=?id;??
  • ????}??
  • ????public?String?getName()?{??
  • ????????return?name;??
  • ????}??
  • ????public?void?setName(String?name)?{??
  • ????????this.name?=?name;??
  • ????}??
  • ????public?List<User>?getList()?{??
  • ????????return?list;??
  • ????}??
  • ????public?void?setList(List<User>?list)?{??
  • ????????this.list?=?list;??
  • ????}??
  • }??
  • [java]?view plain?copy
  • class?Weibo?{??
  • ????private?String?id;??
  • ????private?String?city;??
  • ??
  • ????public?Weibo(String?id,?String?city)?{??
  • ????????this.id?=?id;??
  • ????????this.city?=?city;??
  • ????}??
  • ??
  • ????public?Weibo()?{??
  • ????}??
  • ??
  • ????public?String?getId()?{??
  • ????????return?id;??
  • ????}??
  • ??
  • ????public?void?setId(String?id)?{??
  • ????????this.id?=?id;??
  • ????}??
  • ??
  • ????public?String?getCity()?{??
  • ????????return?city;??
  • ????}??
  • ??
  • ????public?void?setCity(String?city)?{??
  • ????????this.city?=?city;??
  • ????}??
  • }??
  • [java]?view plain?copy
  • import?java.util.HashMap;??
  • import?java.util.List;??
  • import?java.util.Map;??
  • ??
  • import?com.alibaba.fastjson.JSON;??
  • import?com.alibaba.fastjson.JSONArray;??
  • import?com.alibaba.fastjson.JSONObject;??
  • ??
  • //下面是FastJson的簡(jiǎn)介:常用的方法!??
  • //??Fastjson?API入口類(lèi)是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON類(lèi)上的靜態(tài)方法直接完成。??
  • //??public?static?final?Object?parse(String?text);?//?把JSON文本parse為JSONObject或者JSONArray???
  • //??public?static?final?JSONObject?parseObject(String?text);?//?把JSON文本parse成JSONObject??????
  • //??public?static?final?<T>?T?parseObject(String?text,?Class<T>?clazz);?//?把JSON文本parse為JavaBean???
  • //??public?static?final?JSONArray?parseArray(String?text);?//?把JSON文本parse成JSONArray???
  • //??public?static?final?<T>?List<T>?parseArray(String?text,?Class<T>?clazz);?//把JSON文本parse成JavaBean集合???
  • //??public?static?final?String?toJSONString(Object?object);?//?將JavaBean序列化為JSON文本???
  • //??public?static?final?String?toJSONString(Object?object,?boolean?prettyFormat);?//?將JavaBean序列化為帶格式的JSON文本???
  • //??public?static?final?Object?toJSON(Object?javaObject);?將JavaBean轉(zhuǎn)換為JSONObject或者JSONArray(和上面方法的區(qū)別是返回值是不一樣的)??
  • ??
  • /**?
  • ?*?這是關(guān)于FastJson的一個(gè)使用Demo,在Java環(huán)境下驗(yàn)證的;?
  • ?*?使用的時(shí)候可以參照這個(gè)例子進(jìn)行回憶!?
  • ?*?備注:下面寫(xiě)的Json格式的數(shù)據(jù)"前面的\,意思是告訴編譯器忽略掉它后面的"。?
  • ?*?后面定義有三個(gè)類(lèi):User、Group、Weibo?
  • ?*?@author?liuzhao?
  • ?*/??
  • public?class?JsonDemo?{??
  • ??
  • ????public?static?void?main(String[]?args)?{??
  • ??????????
  • ????????json2JsonObjectM1();//將Json文本數(shù)據(jù)信息轉(zhuǎn)換為JsonObject對(duì)象,然后利用鍵值對(duì)的方式獲取信息??
  • ????????json2BeanM2();//將Json文本數(shù)據(jù)轉(zhuǎn)換為JavaBean數(shù)據(jù)!??
  • ????????json2JSONArrayM3();//將json數(shù)據(jù)轉(zhuǎn)化為JSONArray:???
  • ????????json2JavaBeanM4();//將JSON文本轉(zhuǎn)換為JavaBean的集合;轉(zhuǎn)換為單純的1個(gè)Object:parseObject(String?text,?Class<T>?clazz);???
  • ????????bean2JsonM5();//將JavaBean轉(zhuǎn)換為Json格式的數(shù)據(jù)/Json文本?用戶(hù)數(shù)據(jù)的傳遞:例如上傳服務(wù)器??
  • ????????bean2JSONObjectM6();//將JavaBean轉(zhuǎn)換為JSON對(duì)象??
  • ????????complexExampleM7();//一個(gè)相對(duì)復(fù)雜的例子:??
  • ????????complex2JsonM8();//一個(gè)復(fù)雜的Object到Json的Demo??
  • ????????complexMap2JsonM9();//將Map數(shù)據(jù)轉(zhuǎn)換為JsonString的Demo;這個(gè)對(duì)RedBoy服務(wù)端不就直接破了嘛!??
  • ????}??
  • ??
  • ????/**?
  • ?????*?將Json文本數(shù)據(jù)信息轉(zhuǎn)換為JsonObject對(duì)象,然后利用鍵值對(duì)的方式獲取信息?
  • ?????*/??
  • ????private?static?void?json2JsonObjectM1()?{??
  • ????????//一個(gè)JsonObject文本數(shù)據(jù)??
  • ????????String?s?=?"{\"name\":\"liuzhao\"}";??
  • ????????//將JsonObject數(shù)據(jù)轉(zhuǎn)換為Json??
  • ????????JSONObject?object?=?JSON.parseObject(s);??
  • ????????//利用鍵值對(duì)的方式獲取到值??
  • ????????System.out.println(object.get("name"));??
  • ????????/**?
  • ?????????*?打印:?
  • ?????????*?liuzhao?
  • ?????????*/??
  • ????}??
  • ??????
  • ????/**?
  • ?????*?將Json文本數(shù)據(jù)轉(zhuǎn)換為JavaBean數(shù)據(jù)!?
  • ?????*?需要注意的是:這時(shí)候的Json文本信息中的鍵的名稱(chēng)必須和JavaBean中的字段名稱(chēng)一樣!鍵中沒(méi)有的在這個(gè)JavaBean中就顯示為null!?
  • ?????*/??
  • ????private?static?void?json2BeanM2()?{??
  • ????????String?s?=?"{\"id\":\"0375\",\"city\":\"平頂山\"}";??
  • ????????//一個(gè)簡(jiǎn)單方便?的方法將Json文本信息轉(zhuǎn)換為JsonObject對(duì)象的同時(shí)轉(zhuǎn)換為JavaBean對(duì)象!??
  • ????????Weibo?weibo?=?JSON.parseObject(s,?Weibo.class);//Weibo類(lèi)在下邊定義??
  • ????????System.out.println(weibo.getId());??
  • ????????System.out.println(weibo.getCity());??
  • ????????//打印的結(jié)果?????0375??
  • ????????//??????????????平頂山??
  • ????}??
  • ??
  • ??
  • ????/**?
  • ?????*?將Map類(lèi)型的數(shù)據(jù)轉(zhuǎn)換為JsonString?
  • ?????*/??
  • ????private?static?void?complexMap2JsonM9()?{??
  • ????????Group?group?=?new?Group();??
  • ????????group.setId(1);??
  • ????????group.setName("group");??
  • ??????????
  • ????????User?user1?=?new?User();??
  • ????????user1.setId(2);??
  • ????????user1.setName("user1");??
  • ??
  • ????????User?user2?=?new?User();??
  • ????????user2.setId(3);??
  • ????????user2.setName("user2");??
  • ????????group.getList().add(user1);??
  • ????????group.getList().add(user2);??
  • ??????????
  • ????????Map<Integer,?Object>?map?=?new?HashMap<Integer,Object>();??
  • ????????map.put(1,?"No.1");??
  • ????????map.put(2,?"No.2");??
  • ????????map.put(3,?group.getList());??
  • ??????????
  • ????????String?jsonString?=?JSON.toJSONString(map);??
  • ????????System.out.println(jsonString);??
  • ????????/**?
  • ?????????*??輸出:{1:"No.1",2:"No.2",3:[{"id":2,"name":"user1"},{"id":3,"name":"user2"}]}?
  • ?????????*/??
  • ????}??
  • ??
  • ????/**?
  • ?????*?由一個(gè)復(fù)雜的Object到Json的Demo?
  • ?????*/??
  • ????private?static?void?complex2JsonM8()?{??
  • ????????Group?group?=?new?Group();??
  • ????????group.setId(1);??
  • ????????group.setName("group");??
  • ??????????
  • ????????User?user1?=?new?User();??
  • ????????user1.setId(2);??
  • ????????user1.setName("user1");??
  • ??
  • ????????User?user2?=?new?User();??
  • ????????user2.setId(3);??
  • ????????user2.setName("user2");??
  • ????????group.getList().add(user1);??
  • ????????group.getList().add(user2);??
  • ????????String?jsonString?=?JSON.toJSONString(group);??
  • ????????System.out.println(jsonString);??
  • ????????/**?
  • ?????????*??輸出:{"id":1,"list":[{"id":2,"name":"user1"},{"id":3,"name":"user2"}],"name":"group"}?
  • ?????????*/??
  • ????}??
  • ??
  • ????/**?
  • ?????*?一個(gè)相對(duì)復(fù)雜的例子:?
  • ?????*?JSON文本數(shù)據(jù):?
  • ?????*??????首先是JSONObject,轉(zhuǎn)換為JSONArray;?
  • ?????*??????然后將JSONArray轉(zhuǎn)換為JavaBean?
  • ?????*/??
  • ????private?static?void?complexExampleM7()?{??
  • ????????String?s?=?"{js:[{id:\"110000\",\"city\":\"北#001京市\(zhòng)"},{id:\"110000\",\"city\":\"北#002京市\(zhòng)"}"??
  • ????????????????+?",{id:\"110000\",\"city\":\"北#002京市\(zhòng)"},{id:\"110000\",\"city\":\"北#002京市\(zhòng)"},"??
  • ????????????????+?"{id:\"110000\",\"city\":\"#006北#005京市\(zhòng)"},"??
  • ????????????????+?"{id:\"110000\",\"city\":\"北#002京市\(zhòng)"},"??
  • ????????????????+?"{id:\"110000\",\"city\":\"北#002京市\(zhòng)"},{id:\"120000\",\"city\":\"天#009津市\(zhòng)"}]}";??
  • ??????????
  • ????????JSONObject?object?=?JSON.parseObject(s);??
  • ????????Object?jsonArray?=?object.get("js");??
  • ????????System.out.println(jsonArray);??
  • ????????List<Weibo>?list?=?JSON.parseArray(jsonArray+"",?Weibo.class);??
  • ????????for?(Weibo?weibo?:?list)?{??
  • ????????????System.out.println(weibo.getCity());??
  • ????????}??
  • ????}??
  • ??
  • ????/**?
  • ?????*?將JavaBean轉(zhuǎn)換為JSON對(duì)象?
  • ?????*/??
  • ????private?static?void?bean2JSONObjectM6()?{??
  • ????????Weibo?weibo?=?new?Weibo("0373",?"洛陽(yáng)");??
  • ????????JSONObject?json?=?(JSONObject)?JSON.toJSON(weibo);??
  • ????????System.out.println(json.get("id"));??
  • ????????/**?
  • ?????????*?打印:?
  • ?????????*?0373?
  • ?????????*/??
  • ????}??
  • ??
  • ????/**?
  • ?????*?將JSON文本轉(zhuǎn)換為JavaBean的集合;?
  • ?????*?內(nèi)部實(shí)現(xiàn)肯定是:首先轉(zhuǎn)換為JSONArray,然后再轉(zhuǎn)換為L(zhǎng)ist集合?
  • ?????*/??
  • ????private?static?void?json2JavaBeanM4()?{??
  • ????????String?s?=?"[{\"id\":\"0375\",\"city\":\"平頂山\"},{\"id\":\"0377\",\"city\":\"南陽(yáng)\"}]";??
  • ????????List<Weibo>?list?=?JSON.parseArray(s,?Weibo.class);??
  • ????????for?(Weibo?weibo?:?list)?{??
  • ????????????System.out.println(weibo.getCity());??
  • ????????}??
  • ????????/**?
  • ?????????*?打印:?
  • ?????????*?平頂山?
  • ?????????*?南陽(yáng)?
  • ?????????*/??
  • ????}??
  • ??
  • ????/**?
  • ?????*?將json數(shù)據(jù)轉(zhuǎn)化為JSONArray:?
  • ?????*?注意:獲取到JSONArray之后(我們這里只是獲取到JSONArray而不是JavaBean的List集合)?
  • ?????*?獲取JSONArray中的數(shù)據(jù)轉(zhuǎn)換為String類(lèi)型需要在外邊加"";?
  • ?????*/??
  • ????private?static?void?json2JSONArrayM3()?{??
  • ????????String?s?=?"[{\"id\":\"0375\",\"city\":\"平頂山\"},{\"id\":\"0377\",\"city\":\"南陽(yáng)\"}]";??
  • ????????//將JSON文本轉(zhuǎn)換為JSONArray??
  • ????????JSONArray?array?=?JSON.parseArray(s);??
  • ????????//這行必須寫(xiě):必須加上+"";不然會(huì)報(bào)出類(lèi)型強(qiáng)轉(zhuǎn)異常!??
  • ????????String?str?=?array.get(1)+"";??
  • ????????System.out.println(array.get(0));??
  • ????????JSONObject?object?=?JSON.parseObject(str);??
  • ????????System.out.println(object.get("id"));??
  • ????????/**?
  • ?????????*?{"city":"平頂山","id":"0375"}?
  • ????????????0377?
  • ?????????*/??
  • ????}??
  • ??
  • ??
  • ????/**?
  • ?????*?將JavaBean轉(zhuǎn)換為Json格式的數(shù)據(jù)/Json文本?
  • ?????*?用戶(hù)數(shù)據(jù)的傳遞:例如上傳服務(wù)器?
  • ?????*/??
  • ????private?static?void?bean2JsonM5()?{??
  • ????????Weibo?weibo?=?new?Weibo("123456",?"上海");??
  • ????????String?string?=?JSON.toJSONString(weibo);??
  • ????????System.out.println(string);??
  • ????????/**?
  • ?????????*?打印:?
  • ?????????*?{"city":"上海","id":"123456"}?
  • ?????????*/??
  • ????}??
  • ??
  • }??
  • 轉(zhuǎn)載于:https://www.cnblogs.com/sharpest/p/7871665.html

    總結(jié)

    以上是生活随笔為你收集整理的2.FastJson公司--阿里巴巴开源的速度最快的Json和对象转换工具的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。