1 import java.sql.Timestamp;
2 import java.util.Collection;
3 import java.util.Date;
4
5 import org.soul.util.json.JsonDateValueProcessor;
6 import org.soul.util.json.JsonIgnorePropertyFilter;
7
8 import net.sf.json.JSONArray;
9 import net.sf.json.JSONObject;
10 import net.sf.json.JsonConfig;
11
12 /**
13 * 依赖net.sf.json包(json-lib-2.4-jdk?.jar)
14 */
15 public abstract class JsonUtils {
16 private static JsonConfig config = new JsonConfig();
17 private static JsonIgnorePropertyFilter ifp = new JsonIgnorePropertyFilter();
18 static {
19 config.setJsonPropertyFilter(ifp);
20 config.registerJsonValueProcessor(Date.class, new JsonDateValueProcessor("yyyy-MM-dd"));
21 config.registerJsonValueProcessor(java.sql.Date.class, new JsonDateValueProcessor("yyyy-MM-dd"));
22 config.registerJsonValueProcessor(Timestamp.class, new JsonDateValueProcessor("yyyy-MM-dd hh:mm:ss"));
23 }
24
25 /**
26 * 格式化对象成为json对象
27 * @param o 目标对象
28 * @param ignoreFields 忽略字段 如: name,value等
29 * @param ignoreCls 忽略指定类及超类的其所属性
30 * @param ignoreNull 忽略null值
31 * @param ignoreColl 忽略集合属性
32 * @return
33 */
34 public static JSONObject fromObject(Object o,String[] ignoreFields,Class<?> ignoreCls,boolean ignoreNull,boolean ignoreColl){
35 ifp.setIgnoreCls(ignoreCls);
36 ifp.setIgnoreColl(ignoreColl);
37 ifp.setIgnoreNull(ignoreNull);
38 ifp.getFields().clear();
39 if(ignoreFields!=null && ignoreFields.length>0){
40 ifp.addFields(ignoreFields);
41 }
42 JSONObject resultJson = null;
43 try {
44 resultJson = JSONObject.fromObject(o,config);
45 } catch (Exception e) {
46 e.printStackTrace();
47 }
48 return resultJson;
49 }
50
51 /**
52 * 格式化集合成为json集合对象
53 * @param o 目标集合
54 * @param ignoreFields 忽略字段 如: name,value等
55 * @param ignoreCls 忽略指定类及超类的其所属性
56 * @param ignoreNull 忽略null值
57 * @param ignoreColl 忽略集合属性
58 * @return
59 */
60 public static JSONArray fromObject(Collection<?> o,String[] ignoreFields,Class<?> ignoreCls,boolean ignoreNull,boolean ignoreColl){
61 ifp.setIgnoreCls(ignoreCls);
62 ifp.setIgnoreColl(ignoreColl);
63 ifp.setIgnoreNull(ignoreNull);
64 ifp.getFields().clear();
65 if(ignoreFields!=null && ignoreFields.length>0){
66 ifp.addFields(ignoreFields);
67 }
68 JSONArray resultJson = null;
69 try {
70 resultJson = JSONArray.fromObject(o,config);
71 } catch (Exception e) {
72 e.printStackTrace();
73 }
74 return resultJson;
75 }
76 }