首页>代码>Spring MVC+Spring+apache Shiro整合开发客户端日志埋点校验系统>/logreplay/src/main/java/com/sogou/map/logreplay/audit/ObjectToJsonSerializer.java
package com.sogou.map.logreplay.audit;

import java.util.List;

import org.audit4j.core.ObjectSerializer;
import org.audit4j.core.annotation.DeIdentify;
import org.audit4j.core.annotation.DeIdentifyUtil;
import org.audit4j.core.dto.Field;

import com.alibaba.fastjson.JSON;

public class ObjectToJsonSerializer implements ObjectSerializer {
	
	@Override
	public void serialize(List<Field> auditFields,
			Object object, String objectName, DeIdentify deidentify) {
		String json = toJson(object, deidentify);
		auditFields.add(new Field('"' + objectName + '"', json, "\b"));
	}

	public final static String toJson(Object object, DeIdentify deidentify) {
		if (isPrimitive(object)) {
			String primitiveValue = String.valueOf(deidentifyValue(object, deidentify));
			if (object instanceof String) {
				primitiveValue = '"' + primitiveValue + '"';
			}
			return primitiveValue;
		}
		return JSON.toJSONString(object, AuditFastjsonFilter.instance());
	}
	
    public final static boolean isPrimitive(Object object) {
        if (object instanceof String || object instanceof Number || object instanceof Boolean
                || object instanceof Character) {
            return true;
        }
        return false;
    }
    
	public final static Object deidentifyValue(Object value, DeIdentify deIdentify) {
		if (value == null || deIdentify == null) {
			return value;
		}
		return DeIdentifyUtil.deidentify(String.valueOf(value),
				deIdentify.left(), deIdentify.right(),
				deIdentify.fromLeft(), deIdentify.fromRight());
	}

}
最近下载更多
00044304  LV6 2022年8月23日
tutuhero  LV8 2021年4月21日
zdm2157  LV3 2020年6月11日
zmw55555  LV1 2020年4月2日
Mason-想飞  LV2 2019年7月5日
z924931408  LV25 2019年6月10日
ybywx1030  LV7 2019年4月24日
最代码酒酒  LV20 2019年4月16日
denliv_hui  LV13 2018年12月27日
gvin001  LV14 2018年12月12日
最近浏览更多
微信网友_6248713511227392  LV11 2022年12月5日
00044304  LV6 2022年8月22日
wanglinddad  LV55 2022年4月15日
等你归来  LV2 2022年3月1日
囤华飞 2021年7月15日
暂无贡献等级
2840820049  LV9 2021年6月21日
tutuhero  LV8 2021年4月21日
yanxiaoai  LV6 2021年2月1日
啊最代码我要下  LV15 2020年11月16日
adminzk  LV2 2020年7月12日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友