欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

json工具類

張軍 7374 0

json工具類

/**
 * @Description  JsonUtil.java
 * @author 張軍
 * @date 2016-7-6 下午1:29:18
 * @version V1.0
 */
package zj.json;

import java.io.Serializable;
import java.sql.Timestamp;
import java.util.Date;

import zj.date.bean.DateTime;
import zj.json.bean.DateFormatSerializer;
import zj.json.bean.ToJSONString;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.JSONSerializer;
import com.alibaba.fastjson.serializer.NameFilter;
import com.alibaba.fastjson.serializer.PropertyFilter;
import com.alibaba.fastjson.serializer.PropertyPreFilter;
import com.alibaba.fastjson.serializer.SerializeConfig;
import com.alibaba.fastjson.serializer.SerializeWriter;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.serializer.ValueFilter;

/**
 * json工具類
 * 
 * @author 張軍
 * @date 2016-7-6 下午1:29:18
 * @version V1.0
 * @author SHNKCS 張軍 {@link  <a target=_blank href="http://www.dlhighland.cn">張軍個人網(wǎng)站</a>&nbsp;&nbsp;&nbsp;&nbsp;<a target=_blank href="http://user.qzone.qq.com/360901061/">張軍QQ空間</a>}
 */
public class JsonUtil implements Serializable {
	private static final long serialVersionUID = 1L;
	public static SerializeConfig MAPPING = new SerializeConfig();
	static {
		register();
	}

	/**
	 * 轉(zhuǎn)換為json字符串
	 * 
	 * @param value
	 *            轉(zhuǎn)換對象值
	 * @author 張軍
	 * @date 2015-11-03 21:59:00
	 * @modifiyNote
	 * @version 1.0
	 * @return
	 */
	public static String toJSONString(Object value) {
		return toJSONString(value, null);
	}

	/**
	 * 轉(zhuǎn)換為json字符串
	 * 
	 * @param object
	 *            轉(zhuǎn)換對象值
	 * @param toJson
	 *            參數(shù)對象
	 * @author 張軍
	 * @date 2015-11-03 21:59:00
	 * @modifiyNote
	 * @version 1.0
	 * @return
	 */
	public static final String toJSONString(Object object, ToJSONString toJson) {
		if (toJson == null) {
			return JSON.toJSONString(object, MAPPING);
		}
		SerializeWriter out = new SerializeWriter();
		try {
			JSONSerializer serializer = null;
			serializer = new JSONSerializer(out, MAPPING);
			if (toJson.prettyFormat) {
				toJson.features.add(SerializerFeature.PrettyFormat);
			}
			for (SerializerFeature feature : toJson.features) {
				serializer.config(feature, true);
			}
			serializer.config(SerializerFeature.WriteDateUseDateFormat, true);
			if (toJson.filter != null) {
				if (toJson.filter instanceof PropertyPreFilter) {
					serializer.getPropertyPreFilters().add((PropertyPreFilter) toJson.filter);
				}
				if (toJson.filter instanceof NameFilter) {
					serializer.getNameFilters().add((NameFilter) toJson.filter);
				}
				if (toJson.filter instanceof ValueFilter) {
					serializer.getValueFilters().add((ValueFilter) toJson.filter);
				}
				if (toJson.filter instanceof PropertyFilter) {
					serializer.getPropertyFilters().add((PropertyFilter) toJson.filter);
				}
			}
			serializer.write(object);
			return out.toString();
		} finally {
			out.close();
		}
	}

	/**
	 * 注冊日期格式化
	 * 
	 * @author 張軍
	 * @date 2015-11-03 21:59:00
	 * @modifiyNote
	 * @version 1.0
	 * @return 批量集合值
	 */
	private static void register() {
		MAPPING.put(Date.class, new DateFormatSerializer());
		MAPPING.put(DateTime.class, new DateFormatSerializer());
		MAPPING.put(Timestamp.class, new DateFormatSerializer());
	}

}


json工具類參數(shù)對象

/**
 * @Description  JsonUtil.java
 * @author 張軍
 * @date 2016-7-6 下午1:29:18
 * @version V1.0
 */
package zj.json.bean;

import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;

import com.alibaba.fastjson.serializer.SerializeFilter;
import com.alibaba.fastjson.serializer.SerializerFeature;

/**
 * json工具類參數(shù)對象
 * 
 * @author 張軍
 * @date 2016-7-6 下午1:29:18
 * @version V1.0
 * @author SHNKCS 張軍 {@link <a target=_blank href="http://www.shanghaijiadun.com">上海加盾信息科技有限公司</a>&nbsp;&nbsp;&nbsp;&nbsp;<a target=_blank href="http://www.dlhighland.cn">張軍個人網(wǎng)站</a>&nbsp;&nbsp;&nbsp;&nbsp;<a target=_blank href="http://user.qzone.qq.com/360901061/">張軍QQ空間</a>}
 */
public class ToJSONString implements Serializable {
	private static final long serialVersionUID = 1L;
	/** 過慮屬性 **/
	public SerializeFilter filter;
	/** 數(shù)組 **/
	public Set<SerializerFeature> features = new HashSet<SerializerFeature>();
	/** 是否格式化json串 **/
	public boolean prettyFormat;

	/**
	 * 構(gòu)造方法默認(rèn)參數(shù)
	 */
	public ToJSONString() {
		// 在springMVC中必須移除pageModel.remove("org.springframework.validation.BindingResult.[user當(dāng)前類]");
		// FastJson提供了SerializerFeature.DisableCircularReferenceDetect
		// 這個序列化選項,用來關(guān)閉引用檢測。關(guān)閉引用檢測后,重復(fù)引用對象時就不會被$ref代替,但是在循環(huán)引用時也會導(dǎo)致StackOverflowError異常。
		this.features.add(SerializerFeature.DisableCircularReferenceDetect);
	}
}

json屬性過慮器

package zj.json.bean;

import java.util.HashSet;
import java.util.Set;

import zj.check.util.CheckUtil;

import com.alibaba.fastjson.serializer.JSONSerializer;
import com.alibaba.fastjson.serializer.PropertyPreFilter;

/**
 * json屬性過慮器
 * 
 * @author 張軍
 * @date 2016-7-6 下午1:29:18
 * @version V1.0
 * @author SHNKCS 張軍 {@link  <a target=_blank href="http://www.dlhighland.cn">張軍個人網(wǎng)站</a>&nbsp;&nbsp;&nbsp;&nbsp;<a target=_blank href="http://user.qzone.qq.com/360901061/">張軍QQ空間</a>}
 */
public class SimplePropertyPreFilter implements PropertyPreFilter {

	private final Class<?> clazz;
	// 包含的屬性
	private final Set<String> includes = new HashSet<String>();
	// 排除的屬性
	private final Set<String> excludes = new HashSet<String>();

	public SimplePropertyPreFilter(String... properties) {
		this(null, properties);
	}

	public SimplePropertyPreFilter(Class<?> clazz, String... properties) {
		super();
		this.clazz = clazz;
		for (String item : properties) {
			if (CheckUtil.isNotNull(item)) {
				this.includes.add(item);
			}
		}
	}

	public Class<?> getClazz() {
		return clazz;
	}

	public Set<String> getIncludes() {
		return includes;
	}

	public Set<String> getExcludes() {
		return excludes;
	}

	/**
	 * 是否應(yīng)用json字段
	 * 
	 * @param serializer
	 * @see com.alibaba.fastjson.serializer.JSONSerializer
	 * @param source
	 *            被序列化的對象
	 * @param name
	 *            被序列化的對象中的屬性
	 * @author 張軍
	 * @date 2015-11-03 21:59:00
	 * @modifiyNote
	 * @version 1.0
	 * @return true:包含屬性 false:不包含屬性
	 */
	public boolean apply(JSONSerializer serializer, Object source, String name) {
		if (source == null) {
			return true;
		}

		if (clazz != null && !clazz.isInstance(source)) {
			return true;
		}

		if (this.excludes.contains(name)) {
			return false;
		}

		if (includes.size() == 0 || includes.contains(name)) {
			return true;
		}

		return false;
	}

}

json日期格式化類

/**
 * @Description  DateFormatSerializer.java
 * @author 張軍
 * @date 2016-7-6 下午4:37:19
 * @version V1.0
 */
package zj.json.bean;

import java.io.IOException;
import java.lang.reflect.Type;
import java.sql.Timestamp;

import zj.check.util.CheckUtil;
import zj.date.bean.DateTime;
import zj.date.util.DateUtil;

import com.alibaba.fastjson.serializer.JSONSerializer;
import com.alibaba.fastjson.serializer.ObjectSerializer;

/**
 * json日期格式化類
 * 
 * @author 張軍
 * @date 2016-7-6 下午1:29:18
 * @version V1.0
 * @author SHNKCS 張軍 {@link <a target=_blank href="http://www.shanghaijiadun.com">上海加盾信息科技有限公司</a>&nbsp;&nbsp;&nbsp;&nbsp;<a target=_blank href="http://www.dlhighland.cn">張軍個人網(wǎng)站</a>&nbsp;&nbsp;&nbsp;&nbsp;<a target=_blank href="http://user.qzone.qq.com/360901061/">張軍QQ空間</a>}
 */
public class DateFormatSerializer implements ObjectSerializer {

	private String pattern;

	public DateFormatSerializer() {
	}

	public DateFormatSerializer(String pattern) {
		this.pattern = pattern;
	}

	/**
	 * 重寫write方法
	 */
	@Override
	public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features) throws IOException {
		if (object == null) {
			serializer.getWriter().writeNull();
			return;
		}
		String text = "";
		if (CheckUtil.isNull(pattern)) {
			// 自動判斷
			if (object instanceof DateTime || object instanceof Timestamp) {
				text = DateUtil.dateParse(object, "yyyy-MM-dd HH:mm:ss");
			} else if (object instanceof java.util.Date) {
				//java.sql.Date繼承自java.util.Date
				text = DateUtil.dateParse(object, "yyyy-MM-dd");
			} else {
				// 默認(rèn)情況下
				text = DateUtil.dateParse(object, "yyyy-MM-dd HH:mm:ss");
			}
		} else {
			text = DateUtil.dateParse(object, pattern);
		}
		serializer.write(text);
	}

}





更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 91在线中文 | 午夜激情av| 久草福利资源网站免费 | 久久99精品久久久久久国产越南 | 91大神精品长腿在线观看网站 | 好骚综合97op | 播播网色播播 | 色综合网站在线 | 99热久久是国产免费66 | 国产精品不卡 | 精品一区二区三区免费毛片 | 久久精品美女 | 大学门卫老秦无删减版txt | 很黄很暴力深夜爽爽无遮挡 | 日韩精品在线播放 | 成人免费在线 | 午夜欧美一区二区三区在线播放 | 欧美成人免费在线视频 | 黄色资源视频 | 白白操在线视频 | 久久国产精品99久久小说 | 国产亚洲蜜芽精品久久 | 天堂在线中文字幕 | 成人免费体验区福利云点播 | 性 毛片| 999成人网| 99精品国产福利在线观看 | 亚洲国产综合精品 | 久久99热只有视精品6国产 | 中文字幕日韩亚洲 | 国产在线观看一区二区三区 | 国产精品成在线观看 | 久久亚洲这里只有精品18 | 欧美激情欧美激情在线五月 | 9久热这里只有精品视频在线观看 | 久久精品国产99国产 | 欧美日韩综合一区 | 欧美爱爱一区二区 | 成人性生交大片 | 国产精品揄拍一区二区久久 | 日韩免费在线观看视频 |