Springboot------fastjsonカスタムシーケンス化と逆シーケンス化
1082 ワード
一:fastjsonのカスタムシーケンス化
classを定義する->ObjectSerializerインタフェースを実装する->カスタムclassでデータのシーケンス化を操作できます
/**
* objectId
*/
public class ObjectIdSerializer implements ObjectSerializer {
@Override
public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features) throws IOException {
SerializeWriter out = serializer.out;
if (object instanceof ObjectId) {
ObjectId objectId = (ObjectId) object;
out.writeString(objectId.toString());
return;
}
}
}
二:fastjsonのカスタム逆シーケンス化
classを定義する->ObjectDeserializerインタフェースを実装する->カスタムclassでデータの逆シーケンス化を操作できます
public class ObjectIdDeserializer implements ObjectDeserializer{
@Override
public ObjectId deserialze(DefaultJSONParser parser, Type type, Object fieldname){
String idString = parser.getLexer().stringVal();
return new ObjectId(idString);
}
@Override
public int getFastMatchToken(){return 0;}
}