加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 18:46:55 所属栏目:百科 来源:网络整理
导读:这是关于FastJson的一个使用Demo,在Java环境下验证的 [java] view plain copy class User{ private int id; private Stringname; public int getId(){ return id; } void setId( int id){ this .id=id; } public StringgetName(){ return name; void setNam

这是关于FastJson的一个使用Demo,在Java环境下验证的

[java] view plain copy
  1. classUser{
  2. privateintid;
  3. privateStringname;
  4. publicintgetId(){
  5. returnid;
  6. }
  7. voidsetId(intid){
  8. this.id=id;
  9. }
  10. publicStringgetName(){
  11. returnname;
  12. voidsetName(Stringname){
  13. this.name=name;
  14. }
copy
    importjava.util.ArrayList;
  1. importjava.util.List;
  2. classGroup{
  3. intid;
  4. privateStringname;
  5. privateList<User>list=newArrayList<User>();
  6. publicList<User>getList(){
  7. returnlist;
  8. voidsetList(List<User>list){
  9. this.list=list;
  10. copy
      classWeibo{
    1. privateStringid;
    2. privateStringcity;
    3. publicWeibo(Stringid,Stringcity){
    4. this.city=city;
    5. publicWeibo(){
    6. publicStringgetId(){
    7. returnid;
    8. voidsetId(Stringid){
    9. publicStringgetCity(){
    10. returncity;
    11. voidsetCity(Stringcity){
    12. this.city=city;
    13. copy
        importjava.util.HashMap;
      1. importjava.util.Map;
      2. importcom.alibaba.fastjson.JSON;
      3. importcom.alibaba.fastjson.JSONArray;
      4. importcom.alibaba.fastjson.JSONObject;
      5. //下面是FastJson的简介:常用的方法!
      6. //FastjsonAPI入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。
      7. //publicstaticfinalObjectparse(Stringtext);//把JSON文本parse为JSONObject或者JSONArray
      8. //publicstaticfinalJSONObjectparSEObject(Stringtext);//把JSON文本parse成JSONObject
      9. //publicstaticfinal<T>TparSEObject(Stringtext,Class<T>clazz);//把JSON文本parse为JavaBean
      10. //publicstaticfinalJSONArrayparseArray(Stringtext);//把JSON文本parse成JSONArray
      11. //publicstaticfinal<T>List<T>parseArray(Stringtext,Class<T>clazz);//把JSON文本parse成JavaBean集合
      12. //publicstaticfinalStringtoJSONString(Objectobject);//将JavaBean序列化为JSON文本
      13. //publicstaticfinalStringtoJSONString(Objectobject,booleanprettyFormat);//将JavaBean序列化为带格式的JSON文本
      14. //publicstaticfinalObjecttoJSON(ObjectjavaObject);将JavaBean转换为JSONObject或者JSONArray(和上面方法的区别是返回值是不一样的)
      15. /**
      16. *这是关于FastJson的一个使用Demo,在Java环境下验证的;
      17. *使用的时候可以参照这个例子进行回忆!
      18. *备注:下面写的Json格式的数据"前面的,意思是告诉编译器忽略掉它后面的"。
      19. *后面定义有三个类:User、Group、Weibo
      20. *@authorliuzhao
      21. */
      22. classJsonDemo{
      23. staticvoidmain(String[]args){
      24. json2JsonObjectM1();//将Json文本数据信息转换为JsonObject对象,然后利用键值对的方式获取信息
      25. json2BeanM2();//将Json文本数据转换为JavaBean数据!
      26. json2JSONArrayM3();//将json数据转化为JSONArray:
      27. json2JavaBeanM4();//将JSON文本转换为JavaBean的集合;转换为单纯的1个Object:parSEObject(Stringtext,Class<T>clazz);
      28. bean2JsonM5();//将JavaBean转换为Json格式的数据/Json文本用户数据的传递:例如上传服务器
      29. bean2JSONObjectM6();//将JavaBean转换为JSON对象
      30. complexExampleM7();//一个相对复杂的例子:
      31. complex2JsonM8();//一个复杂的Object到Json的Demo
      32. complexMap2JsonM9();//将Map数据转换为JsonString的Demo;这个对RedBoy服务端不就直接破了嘛!
      33. *将Json文本数据信息转换为JsonObject对象,然后利用键值对的方式获取信息
      34. voidjson2JsonObjectM1(){
      35. //一个JsonObject文本数据
      36. Strings="{"name":"liuzhao"}";
      37. //将JsonObject数据转换为Json
      38. JSONObjectobject=JSON.parSEObject(s);
      39. //利用键值对的方式获取到值
      40. System.out.println(object.get("name"));
      41. *打印:
      42. *liuzhao
      43. */
      44. *将Json文本数据转换为JavaBean数据!
      45. *需要注意的是:这时候的Json文本信息中的键的名称必须和JavaBean中的字段名称一样!键中没有的在这个JavaBean中就显示为null!
      46. voidjson2BeanM2(){
      47. Strings="{"id":"0375","city":"平顶山"}";
      48. //一个简单方便的方法将Json文本信息转换为JsonObject对象的同时转换为JavaBean对象!
      49. Weiboweibo=JSON.parSEObject(s,Weibo.class);//Weibo类在下边定义
      50. System.out.println(weibo.getId());
      51. System.out.println(weibo.getCity());
      52. //打印的结果0375
      53. //平顶山
      54. /**
      55. *将Map类型的数据转换为JsonString
      56. voidcomplexMap2JsonM9(){
      57. Groupgroup=newGroup();
      58. group.setId(1);
      59. group.setName("group");
      60. Useruser1=newUser();
      61. user1.setId(2);
      62. user1.setName("user1");
      63. Useruser2= user2.setId(3);
      64. user2.setName("user2");
      65. group.getList().add(user1);
      66. group.getList().add(user2);
      67. Map<Integer,Object>map=newHashMap<Integer,Object>();
      68. map.put(1,"No.1");
      69. map.put(2,"No.2");
      70. 3,group.getList());
      71. StringjsonString=JSON.toJSONString(map);
      72. System.out.println(jsonString);
      73. *输出:{1:"No.1",2:"No.2",3:[{"id":2,"name":"user1"},{"id":3,"name":"user2"}]}
      74. *由一个复杂的Object到Json的Demo
      75. voidcomplex2JsonM8(){
      76. StringjsonString=JSON.toJSONString(group);
      77. *输出:{"id":1,"list":[{"id":2,"name":"user2"}],"name":"group"}
      78. *一个相对复杂的例子:
      79. *JSON文本数据:
      80. *首先是JSONObject,转换为JSONArray;
      81. *然后将JSONArray转换为JavaBean
      82. voidcomplexExampleM7(){
      83. Strings="{js:[{id:"110000","city":"北#001京市"},{id:"110000","city":"北#002京市"}"
      84. +","city":"北#002京市"},"
      85. +"{id:"110000","city":"#006北#005京市"},"
      86. +"{id:"110000",{id:"120000","city":"天#009津市"}]}";
      87. JSONObjectobject=JSON.parSEObject(s);
      88. ObjectjsonArray=object.get("js");
      89. System.out.println(jsonArray);
      90. List<Weibo>list=JSON.parseArray(jsonArray+"",Weibo.class);
      91. for(Weiboweibo:list){
      92. *将JavaBean转换为JSON对象
      93. voidbean2JSONObjectM6(){
      94. Weiboweibo=newWeibo("0373","洛阳");
      95. JSONObjectjson=(JSONObject)JSON.toJSON(weibo);
      96. System.out.println(json.get("id"));
      97. *0373
      98. *将JSON文本转换为JavaBean的集合;
      99. *内部实现肯定是:首先转换为JSONArray,然后再转换为List集合
      100. voidjson2JavaBeanM4(){
      101. Strings="[{"id":"0375","city":"平顶山"},{"id":"0377","city":"南阳"}]";
      102. List<Weibo>list=JSON.parseArray(s,153); background-color:inherit; font-weight:bold">class);
      103. for(Weiboweibo:list){
      104. System.out.println(weibo.getCity());
      105. *平顶山
      106. *南阳
      107. *将json数据转化为JSONArray:
      108. *注意:获取到JSONArray之后(我们这里只是获取到JSONArray而不是JavaBean的List集合)
      109. *获取JSONArray中的数据转换为String类型需要在外边加"";
      110. voidjson2JSONArrayM3(){
      111. //将JSON文本转换为JSONArray
      112. JSONArrayarray=JSON.parseArray(s);
      113. //这行必须写:必须加上+"";不然会报出类型强转异常!
      114. Stringstr=array.get(1)+"";
      115. System.out.println(array.get(0));
      116. JSONObjectobject=JSON.parSEObject(str);
      117. System.out.println(object.get("id"));
      118. *{"city":"平顶山","id":"0375"}
      119. 0377
      120. *将JavaBean转换为Json格式的数据/Json文本
      121. *用户数据的传递:例如上传服务器
      122. voidbean2JsonM5(){
      123. newWeibo("123456","上海");
      124. Stringstring=JSON.toJSONString(weibo);
      125. System.out.println(string);
      126. *{"city":"上海","id":"123456"}
      127. }

      转自: http://www.oschina.net/code/snippet_228315_35122

      (编辑:李大同)

      【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读