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

前端之家收集整理的这篇文章主要介绍了FastJson--阿里巴巴公司开源的速度最快的Json和对象转换工具前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

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

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

猜你在找的Json相关文章