您的当前位置:首页正文

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

2023-12-24 来源:汇智旅游网
 重庆达渝仁科技官网:www.cqdyr.com

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. * @param object 5. * @param clazz 6. * @return 7. */ 8. public static Object getDTO(String jsonString, Class clazz){ 9. JSONObject jsonObject = null; 10. try{ 重庆达渝仁科技官网:www.cqdyr.com 11. setDataFormat2JAVA(); 12. jsonObject = JSONObject.fromObject(jsonString); 13. }catch(Exception e){ 14. e.printStackTrace(); 15. } 16. return JSONObject.toBean(jsonObject, clazz); 17. } 18. 19. /** 20. * 从一个JSON 对象字符格式中得到一个java对象,其中beansList是一类的集合,形如: 21. * {\"id\" : idValue, \"name\" : nameValue, \"aBean\" : {\"aBeanId\" : aBeanIdValue, ...}, 22. * beansList:[{}, {}, ...]} 重庆达渝仁科技官网:www.cqdyr.com 23. * @param jsonString 24. * @param clazz 25. * @param map 集合属性的类型 (key : 集合属性名, value : 集合属性类型class) eg: (\"beansList\" : Bean.class) 26. * @return 27. */ 28. public static Object getDTO(String jsonString, Class clazz, Map map){ 29. JSONObject jsonObject = null; 30. try{ 31. setDataFormat2JAVA(); 32. jsonObject = JSONObject.fromObject(jsonString); 33. }catch(Exception e){ 34. e.printStackTrace(); 重庆达渝仁科技官网:www.cqdyr.com 35. } 36. return JSONObject.toBean(jsonObject, clazz, map); 37. } 38. 39. /** 40. * 从一个JSON数组得到一个java对象数组,形如: 41. * [{\"id\" : idValue, \"name\" : nameValue}, {\"id\" : idValue, \"name\" : nameValue}, ...] 42. * @param object 43. * @param clazz 44. * @return 45. */ 46. public static Object[] getDTOArray(String jsonString, Class clazz){ 重庆达渝仁科技官网:www.cqdyr.com 47. setDataFormat2JAVA(); 48. JSONArray array = JSONArray.fromObject(jsonString); 49. Object[] obj = new Object[array.size()]; 50. for(int i = 0; i < array.size(); i++){ 51. JSONObject jsonObject = array.getJSONObject(i); 52. obj[i] = JSONObject.toBean(jsonObject, clazz); 53. } 54. return obj; 55. } 56. 57. /** 58. * 从一个JSON数组得到一个java对象数组,形如: 59. * [{\"id\" : idValue, \"name\" : nameValue}, {\"id\" : idValue, \"name\" : nameValue}, ...] 重庆达渝仁科技官网:www.cqdyr.com 60. * @param object 61. * @param clazz 62. * @param map 63. * @return 64. */ 65. public static Object[] getDTOArray(String jsonString, Class clazz, Map map){ 66. setDataFormat2JAVA(); 67. JSONArray array = JSONArray.fromObject(jsonString); 68. Object[] obj = new Object[array.size()]; 69. for(int i = 0; i < array.size(); i++){ 70. JSONObject jsonObject = array.getJSONObject(i); 71. obj[i] = JSONObject.toBean(jsonObject, clazz, map); 72. } 重庆达渝仁科技官网:www.cqdyr.com 73. return obj; 74. } 75. /** 76. * 从一个JSON数组得到一个java对象集合 77. * @param object 78. * @param clazz 79. * @return 80. */ 81. public static List getDTOList(String jsonString, Class clazz){ 82. setDataFormat2JAVA(); 83. JSONArray array = JSONArray.fromObject(jsonString); 84. List list = new ArrayList(); 85. for(Iterator iter = array.iterator(); iter.hasNext();){ 重庆达渝仁科技官网:www.cqdyr.com 86. JSONObject jsonObject = (JSONObject)iter.next(); 87. list.add(JSONObject.toBean(jsonObject, clazz)); 88. } 89. return list; 90. } 91. 92. /** 93. * 从一个JSON数组得到一个java对象集合,其中对象中包含有集合属性 94. * @param object 95. * @param clazz 96. * @param map 集合属性的类型 97. * @return 98. */ 重庆达渝仁科技官网:www.cqdyr.com 99. public static List getDTOList(String jsonString, Class clazz, Map map){ 100. setDataFormat2JAVA(); 101. JSONArray array = JSONArray.fromObject(jsonString); 102. List list = new ArrayList(); 103. for(Iterator iter = array.iterator(); iter.hasNext();){ 104. JSONObject jsonObject = (JSONObject)iter.next(); 105. list.add(JSONObject.toBean(jsonObject, clazz, map)); 106. } 107. return list; 108. } 109. 110. /** 111. * 从json HASH表达式中获取一个map,该map支持嵌套功能 重庆达渝仁科技官网:www.cqdyr.com 112. * 形如:{\"id\" : \"johncon\\"name\" : \"小强\ 113. * 注意commons-collections版本,必须包含org.apache.commons.collections.map.MultiKeyMap 114. * @param object 115. * @return 116. */ 117. public static Map getMapFromJson(String jsonString) { 118. setDataFormat2JAVA(); 119. JSONObject jsonObject = JSONObject.fromObject(jsonString); 120. Map map = new HashMap(); 121. for(Iterator iter = jsonObject.keys(); iter.hasNext();){ 122. String key = (String)iter.next(); 123. map.put(key, jsonObject.get(key)); 124. } 重庆达渝仁科技官网:www.cqdyr.com 125. return map; 126. } 127. 128. /** 129. * 从json数组中得到相应java数组 130. * json形如:[\"123\\"456\"] 131. * @param jsonString 132. * @return 133. */ 134. public static Object[] getObjectArrayFromJson(String jsonString) { 135. JSONArray jsonArray = JSONArray.fromObject(jsonString); 136. return jsonArray.toArray(); 137. } 重庆达渝仁科技官网:www.cqdyr.com 138. /** 139. * 把数据对象转换成json字符串 140. * DTO对象形如:{\"id\" : idValue, \"name\" : nameValue, ...} 141. * 数组对象形如:[{}, {}, {}, ...] 142. * map对象形如:{key1 : {\"id\" : idValue, \"name\" : nameValue, ...}, key2 : {}, ...} 143. * @param object 144. * @return 145. */ 146. public static String getJSONString(Object object) throws Exception{ 147. String jsonString = null; 148. //日期值处理器 149. JsonConfig jsonConfig = new JsonConfig(); 重庆达渝仁科技官网:www.cqdyr.com 150. jsonConfig.registerJsonValueProcessor(java.util.Date.class, new JsonDateValueProcessor()); 151. if(object != null){ 152. if(object instanceof Collection || object instanceof Object[]){ 153. jsonString = JSONArray.fromObject(object, jsonConfig).toString(); 154. }else{ 155. jsonString = JSONObject.fromObject(object, jsonConfig).toString(); 156. } 157. } 158. return jsonString == null ? \"{}\" : jsonString; 159. }

因篇幅问题不能全部显示,请点此查看更多更全内容