我已经花了很多时间尝试编写自定义序列化程序,以在序列化过程中将 Int (TINYINT from mysql) 替换为 Boolean。
使用 Gson 我可以毫无问题地做到这一点,就像这样(java):
public class BooleanSerializer implements JsonSerializer<Boolean>, JsonDeserializer<Boolean> {
@Override
public JsonElement serialize(Boolean arg0, Type arg1, JsonSerializationContext arg2) {
return new JsonPrimitive(arg0 ? 1 : 0);
}
@Override
public Boolean deserialize(JsonElement arg0, Type arg1, JsonDeserializationContext arg2) throws JsonParseException {
return arg0.getAsInt() == 1;
}
}
GsonBuilder().registerTypeAdapter(Boolean.class, serializer)
也许有人已经使用 kotlinx.serialization 库解决了类似的问题?
谢谢你。