java中使用net.sf.json对json进行解析

net.sf.json依赖的包很多。

有commons-collections,commons-beanutils.jar,commons-httpclient.jar,commons-lang.jar,ezmorph-1.0.5.jar,morph-1.1.1.jar

  1. /**
  2. *从一个JSON对象字符格式中得到一个java对象,形如:
  3. *{"id":idValue,"name":nameValue,"aBean":{"aBeanId":aBeanIdValue,...}}
  4. *@paramobject
  5. *@paramclazz
  6. *@return
  7. */
  8. publicstaticObjectgetDTO(StringjsonString,Classclazz){
  9. JSONObjectjsonObject=null;
  10. try{
  11. setDataFormat2JAVA();
  12. jsonObject=JSONObject.fromObject(jsonString);
  13. }catch(Exceptione){
  14. e.printStackTrace();
  15. }
  16. returnJSONObject.toBean(jsonObject,clazz);
  17. }
  18. /**
  19. *从一个JSON对象字符格式中得到一个java对象,其中beansList是一类的集合,形如:
  20. *{"id":idValue,"name":nameValue,"aBean":{"aBeanId":aBeanIdValue,...},
  21. *beansList:[{},{},...]}
  22. *@paramjsonString
  23. *@paramclazz
  24. *@parammap集合属性的类型(key:集合属性名,value:集合属性类型class)eg:("beansList":Bean.class)
  25. *@return
  26. */
  27. publicstaticObjectgetDTO(StringjsonString,Classclazz,Mapmap){
  28. JSONObjectjsonObject=null;
  29. try{
  30. setDataFormat2JAVA();
  31. jsonObject=JSONObject.fromObject(jsonString);
  32. }catch(Exceptione){
  33. e.printStackTrace();
  34. }
  35. returnJSONObject.toBean(jsonObject,clazz,map);
  36. }
  37. /**
  38. *从一个JSON数组得到一个java对象数组,形如:
  39. *[{"id":idValue,"name":nameValue},{"id":idValue,"name":nameValue},...]
  40. *@paramobject
  41. *@paramclazz
  42. *@return
  43. */
  44. publicstaticObject[]getDTOArray(StringjsonString,Classclazz){
  45. setDataFormat2JAVA();
  46. JSONArrayarray=JSONArray.fromObject(jsonString);
  47. Object[]obj=newObject[array.size()];
  48. for(inti=0;i<array.size();i++){
  49. JSONObjectjsonObject=array.getJSONObject(i);
  50. obj[i]=JSONObject.toBean(jsonObject,clazz);
  51. }
  52. returnobj;
  53. }
  54. /**
  55. *从一个JSON数组得到一个java对象数组,形如:
  56. *[{"id":idValue,"name":nameValue},{"id":idValue,"name":nameValue},...]
  57. *@paramobject
  58. *@paramclazz
  59. *@parammap
  60. *@return
  61. */
  62. publicstaticObject[]getDTOArray(StringjsonString,Classclazz,Mapmap){
  63. setDataFormat2JAVA();
  64. JSONArrayarray=JSONArray.fromObject(jsonString);
  65. Object[]obj=newObject[array.size()];
  66. for(inti=0;i<array.size();i++){
  67. JSONObjectjsonObject=array.getJSONObject(i);
  68. obj[i]=JSONObject.toBean(jsonObject,clazz,map);
  69. }
  70. returnobj;
  71. }
  72. /**
  73. *从一个JSON数组得到一个java对象集合
  74. *@paramobject
  75. *@paramclazz
  76. *@return
  77. */
  78. publicstaticListgetDTOList(StringjsonString,Classclazz){
  79. setDataFormat2JAVA();
  80. JSONArrayarray=JSONArray.fromObject(jsonString);
  81. Listlist=newArrayList();
  82. for(Iteratoriter=array.iterator();iter.hasNext();){
  83. JSONObjectjsonObject=(JSONObject)iter.next();
  84. list.add(JSONObject.toBean(jsonObject,clazz));
  85. }
  86. returnlist;
  87. }
  88. /**
  89. *从一个JSON数组得到一个java对象集合,其中对象中包含有集合属性
  90. *@paramobject
  91. *@paramclazz
  92. *@parammap集合属性的类型
  93. *@return
  94. */
  95. publicstaticListgetDTOList(StringjsonString,Classclazz,Mapmap){
  96. setDataFormat2JAVA();
  97. JSONArrayarray=JSONArray.fromObject(jsonString);
  98. Listlist=newArrayList();
  99. for(Iteratoriter=array.iterator();iter.hasNext();){
  100. JSONObjectjsonObject=(JSONObject)iter.next();
  101. list.add(JSONObject.toBean(jsonObject,clazz,map));
  102. }
  103. returnlist;
  104. }
  105. /**
  106. *从jsonHASH表达式中获取一个map,该map支持嵌套功能
  107. *形如:{"id":"johncon","name":"小强"}
  108. *注意commons-collections版本,必须包含org.apache.commons.collections.map.MultiKeyMap
  109. *@paramobject
  110. *@return
  111. */
  112. publicstaticMapgetMapFromJson(StringjsonString){
  113. setDataFormat2JAVA();
  114. JSONObjectjsonObject=JSONObject.fromObject(jsonString);
  115. Mapmap=newHashMap();
  116. for(Iteratoriter=jsonObject.keys();iter.hasNext();){
  117. Stringkey=(String)iter.next();
  118. map.put(key,jsonObject.get(key));
  119. }
  120. returnmap;
  121. }
  122. /**
  123. *从json数组中得到相应java数组
  124. *json形如:["123","456"]
  125. *@paramjsonString
  126. *@return
  127. */
  128. publicstaticObject[]getObjectArrayFromJson(StringjsonString){
  129. JSONArrayjsonArray=JSONArray.fromObject(jsonString);
  130. returnjsonArray.toArray();
  131. }
  132. /**
  133. *把数据对象转换成json字符串
  134. *DTO对象形如:{"id":idValue,"name":nameValue,...}
  135. *数组对象形如:[{},{},{},...]
  136. *map对象形如:{key1:{"id":idValue,"name":nameValue,...},key2:{},...}
  137. *@paramobject
  138. *@return
  139. */
  140. publicstaticStringgetJSONString(Objectobject)throwsException{
  141. StringjsonString=null;
  142. //日期值处理器
  143. JsonConfigjsonConfig=newJsonConfig();
  144. jsonConfig.registerJsonValueProcessor(java.util.Date.class,newJsonDateValueProcessor());
  145. if(object!=null){
  146. if(objectinstanceofCollection||objectinstanceofObject[]){
  147. jsonString=JSONArray.fromObject(object,jsonConfig).toString();
  148. }else{
  149. jsonString=JSONObject.fromObject(object,jsonConfig).toString();
  150. }
  151. }
  152. returnjsonString==null?"{}":jsonString;
  153. }

你可能感兴趣的:(java)