1、创建json序列化接口

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializeConfig;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.serializer.ValueFilter;
import com.jfinal.json.*;
import com.jfinal.plugin.activerecord.Record;

public class FastJsonFactoryCustomer extends JFinalJsonFactory {

    private static final FastJsonFactoryCustomer me = new FastJsonFactoryCustomer();

    public static JFinalJsonFactory me() {
        return me;
    }

    @Override
    public Json getJson() {
        return new FastJsonCustomer();
    }

}
class FastJsonCustomer extends JFinalJson {

    static {
        // 支持序列化 ActiveRecord 的 Record 类型
        SerializeConfig.getGlobalInstance().put(Record.class, new FastJsonRecordSerializer());
    }
    ValueFilter filter = new ValueFilter() {
        @Override
        public Object process(Object obj, String s, Object v) {
            if (v instanceof  Long)
                return v.toString();
            return v;
        }
    };
    public static FastJsonCustomer getJson() {
        return new FastJsonCustomer();
    }

    public String toJson(Object object) {
        // 优先使用对象级的属性 datePattern, 然后才是全局性的 defaultDatePattern
        return JSON.toJSONString(object,
                filter, SerializerFeature.WriteDateUseDateFormat);	// return JSON.toJSONString(object, SerializerFeature.WriteDateUseDateFormat);
    }

    public <T> T parse(String jsonString, Class<T> type) {
        return JSON.parseObject(jsonString, type);
    }

}

2、配置Jfianl 常量中json工厂配置

	@Override
	public void configConstant(Constants me) { 
		//Json配置
//		me.setJsonFactory(FastJsonFactory.me());
		me.setJsonFactory(FastJsonFactoryCustomer.me());
	}

 

 

 

最后修改于 2020-04-16 13:32:11
如果觉得我的文章对你有用,请随意赞赏
扫一扫支付
上一篇