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

这是关于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

相关文章

AJAX是一种基于JavaScript和XML的技术,能够使网页实现异步交...
在网页开发中,我们常常需要通过Ajax从后端获取数据并在页面...
在前端开发中,经常需要循环JSON对象数组进行数据操作。使用...
AJAX(Asynchronous JavaScript and XML)是一种用于创建 We...
AJAX技术被广泛应用于现代Web开发,它可以在无需重新加载页面...
Ajax是一种通过JavaScript和HTTP请求交互的技术,可以实现无...