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 }
时间: 2024-10-24 21:06:54