序列化、反序列化需要实现 两接口
ObjectSerializer, ObjectDeserializer 代码如下:
import com.alibaba.fastjson.parser.DefaultJSONParser;
import com.alibaba.fastjson.parser.deserializer.ObjectDeserializer;
import com.alibaba.fastjson.serializer.JSONSerializer;
import com.alibaba.fastjson.serializer.ObjectSerializer;
import com.alibaba.fastjson.serializer.SerializeWriter;
import com.mch.common.lang.MDateTime;
import java.io.IOException;
import java.lang.reflect.Type;
public class MDateTimeDeSerializer implements ObjectSerializer, ObjectDeserializer {
@Override
public MDateTime deserialze(DefaultJSONParser parser, Type type, Object fieldName) {
String str = parser.lexer.stringVal();
if (str == null || str.trim().equals("")) {
return null;
} else {
return new MDateTime(str);
}
}
@Override
public int getFastMatchToken() {
return 0;
}
@Override
public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features) throws IOException {
SerializeWriter out = serializer.getWriter();
if (object == null) {
return;
} else if (object.toString().trim().equals("")) {
return;
}
out.writeString(object.toString());
}
}
添加到全局对象中
SerializeConfig,ParserConfig 代码如下:
private static final MDateTimeDeSerializer mDateTimeDeSerializer = new MDateTimeDeSerializer();
static {
SerializeConfig.globalInstance.put(MDateTime.class, mDateTimeDeSerializer);
ParserConfig.global.putDeserializer(MDateTime.class, mDateTimeDeSerializer);
}