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 * @return33 */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 * @return59 */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 }