脚本宝典收集整理的这篇文章主要介绍了js實例教程-對象轉JSONArray,JSONObject的實例教程,包括對象中日期格式化,屬性過濾,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。小寶典致力於為廣大程序猿(媛)提供高品質的代碼服務,請大家多多光顧小站,小寶典在此謝過。
創建時間轉換器
import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; import net.sf.json.Jsonconfig; import net.sf.json.PRocessors.JsonValueProcessor; public class JsonDateValueProcessor implements JsonValueProcessor { private String format ="yyyy-MM-dd hh:mm:ss"; public JsonDateValueProcessor() { suPEr(); } public JsonDateValueProcessor(String format) { super(); this.format = format; } public Object processArrayValue(Object paramObject, JsonConfig paramJsonConfig) { return process(paramObject); } public Object processObjectValue(String paramString, Object paramObject, JsonConfig paramJsonConfig) { return process(paramObject); } private Object process(Object value){ if(value instanceof Date){ SimpleDateFormat sDF = new SimpleDateFormat(format,Locale.CHINA); return sdf.format(value); } return value == null ? "" : value.toString(); } }
創建對象屬性過濾器,並能對對象中date格式字段進行字符串格式轉換
import java.lang.reflect.Field; import java.util.Date; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import net.sf.json.JsonConfig; import net.sf.json.util.PropertyFilter; import org.@R_406_1057@.COMmons.LOGging.Log; import org.apache.commons.logging.LogFactory; /** * <p>TITle: 保留屬性</p> * <p>Description:保留JAVABEAN的指定屬性</p> * */ public class IgnoreFieldProcessorImpl implements PropertyFilter { Log log = LogFactory.getLog(this.getClass()); /** * 保留的屬性名稱 */ private String[] fields; /** * 空參構造方法<br/> * 默認不忽略集合 */ public IgnoreFieldProcessorImpl() { // empty } /** * 構造方法 * @param fields 保留屬性名稱數組 */ public IgnoreFieldProcessorImpl(String[] fields) { this.fields = fields; } /** * 構造方法 * @param fields 保留屬性名稱數組 */ public IgnoreFieldProcessorImpl(boolean ignoreColl, String[] fields) { this.fields = fields; } public boolean apply(Object source, String name, Object value) { Field declaredField = null; // 保留設定的屬性 if(fields != null && fields.length > 0) { if(juge(fields,name)) { return false; } else { return true; } } return false; } /** * 保留相等的屬性 * @param s * @param s2 * @return */ public boolean juge(String[] s,String s2){ boolean b = false; for(String sl : s){ if(s2.equals(sl)){ b=true; } } return b; } /** * 獲取保留的屬性 * @param fields */ public String[] getFields() { return fields; } /** * 設置保留的屬性 * @param fields */ public void setFields(String[] fields) { this.fields = fields; } /** * 保留字段轉換JSON 對象 * @param configs 保留字段名稱 * @param entity 需要轉換實體 * @return */ public static JSONObject JsonConfig(String[] configs,Object entity){ JsonConfig config = new JsonConfig(); config.setJsonPropertyFilter(new IgnoreFieldProcessorImpl(true, configs)); // 保留的屬性<span style="font-family: Arial, Helvetica, sans-serif;">configs</span> config.registerJsonValueProcessor(Date.class, new JsonDateValueProcessor()); // 將對象中的日期進行格式化 JSONObject FromObject = JSONObject.fromObject(entity, config ); return fromObject; } /** * 保留字段轉換json 數組 * @param configs 保留字段名稱 * @param entity 需要轉換實體 * @return */ public static JSONArray ArrayJsonConfig(String[] configs,Object entity){ JsonConfig config = new JsonConfig(); config.setJsonPropertyFilter(new IgnoreFieldProcessorImpl(true, configs)); //<span style="font-family: Arial, Helvetica, sans-serif;">保留的屬性</span><span style="font-family: Arial, Helvetica, sans-serif;">configs</span> config.registerJsonValueProcessor(Date.class, new JsonDateValueProcessor()); JSONArray fromObject = JSONArray.fromObject(entity, config ); return fromObject; } }
調用方法,
例:將exam對象轉換成JSONObject並只保留需要的字段
JSONObject ex = IgnoreFieldProcessorImpl.JsonConfig(new String[]{"id","examName","examDate"}, exam);
例:將list<Course>對象轉換成JSONArray並只保留Course中需要保留的字段
JSONArray listj=IgnoreFieldProcessorImpl.ArrayJsonConfig(new String[]{"id","courseName","examDate","remark"}, list);
創建時間轉換器
import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; import net.sf.json.JsonConfig; import net.sf.json.processors.JsonValueProcessor; public class JsonDateValueProcessor implements JsonValueProcessor { private String format ="yyyy-MM-dd hh:mm:ss"; public JsonDateValueProcessor() { super(); } public JsonDateValueProcessor(String format) { super(); this.format = format; } public Object processArrayValue(Object paramObject, JsonConfig paramJsonConfig) { return process(paramObject); } public Object processObjectValue(String paramString, Object paramObject, JsonConfig paramJsonConfig) { return process(paramObject); } private Object process(Object value){ if(value instanceof Date){ SimpleDateFormat sdf = new SimpleDateFormat(format,Locale.CHINA); return sdf.format(value); } return value == null ? "" : value.toString(); } }
創建對象屬性過濾器,並能對對象中date格式字段進行字符串格式轉換
import java.lang.reflect.Field; import java.util.Date; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import net.sf.json.JsonConfig; import net.sf.json.util.PropertyFilter; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; /** * <p>Title: 保留屬性</p> * <p>Description:保留JAVABEAN的指定屬性</p> * */ public class IgnoreFieldProcessorImpl implements PropertyFilter { Log log = LogFactory.getLog(this.getClass()); /** * 保留的屬性名稱 */ private String[] fields; /** * 空參構造方法<br/> * 默認不忽略集合 */ public IgnoreFieldProcessorImpl() { // empty } /** * 構造方法 * @param fields 保留屬性名稱數組 */ public IgnoreFieldProcessorImpl(String[] fields) { this.fields = fields; } /** * 構造方法 * @param fields 保留屬性名稱數組 */ public IgnoreFieldProcessorImpl(boolean ignoreColl, String[] fields) { this.fields = fields; } public boolean apply(Object source, String name, Object value) { Field declaredField = null; // 保留設定的屬性 if(fields != null && fields.length > 0) { if(juge(fields,name)) { return false; } else { return true; } } return false; } /** * 保留相等的屬性 * @param s * @param s2 * @return */ public boolean juge(String[] s,String s2){ boolean b = false; for(String sl : s){ if(s2.equals(sl)){ b=true; } } return b; } /** * 獲取保留的屬性 * @param fields */ public String[] getFields() { return fields; } /** * 設置保留的屬性 * @param fields */ public void setFields(String[] fields) { this.fields = fields; } /** * 保留字段轉換json 對象 * @param configs 保留字段名稱 * @param entity 需要轉換實體 * @return */ public static JSONObject JsonConfig(String[] configs,Object entity){ JsonConfig config = new JsonConfig(); config.setJsonPropertyFilter(new IgnoreFieldProcessorImpl(true, configs)); // 保留的屬性<span style="font-family: Arial, Helvetica, sans-serif;">configs</span> config.registerJsonValueProcessor(Date.class, new JsonDateValueProcessor()); // 將對象中的日期進行格式化 JSONObject fromObject = JSONObject.fromObject(entity, config ); return fromObject; } /** * 保留字段轉換json 數組 * @param configs 保留字段名稱 * @param entity 需要轉換實體 * @return */ public static JSONArray ArrayJsonConfig(String[] configs,Object entity){ JsonConfig config = new JsonConfig(); config.setJsonPropertyFilter(new IgnoreFieldProcessorImpl(true, configs)); //<span style="font-family: Arial, Helvetica, sans-serif;">保留的屬性</span><span style="font-family: Arial, Helvetica, sans-serif;">configs</span> config.registerJsonValueProcessor(Date.class, new JsonDateValueProcessor()); JSONArray fromObject = JSONArray.fromObject(entity, config ); return fromObject; } }
調用方法,
例:將exam對象轉換成JSONObject並只保留需要的字段
JSONObject ex = IgnoreFieldProcessorImpl.JsonConfig(new String[]{"id","examName","examDate"}, exam);
例:將list<Course>對象轉換成JSONArray並只保留Course中需要保留的字段
JSONArray listj=IgnoreFieldProcessorImpl.ArrayJsonConfig(new String[]{"id","courseName","examDate","remark"}, list);
覺得可用,就經常來吧!Javascript技巧 腳本寶典 歡迎評論哦! js技巧,巧奪天工,精雕玉琢。小寶典獻醜了!
以上是脚本宝典为你收集整理的js實例教程-對象轉JSONArray,JSONObject的實例教程,包括對象中日期格式化,屬性過濾全部内容,希望文章能够帮你解决js實例教程-對象轉JSONArray,JSONObject的實例教程,包括對象中日期格式化,屬性過濾所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。