Files
smartDriveEE/src/main/java/com/rj/common/IntegerDeserializer.java

35 lines
1016 B
Java

package com.rj.common;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import java.io.IOException;
/**
* 自定义 Integer 反序列化器
* 支持从字符串和整数两种格式反序列化为 Integer
* 如果无法解析,返回 null
*/
public class IntegerDeserializer extends JsonDeserializer<Integer> {
@Override
public Integer deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
String value = p.getValueAsString();
if (value == null || value.trim().isEmpty()) {
return null;
}
try {
// 尝试直接解析为整数
return Integer.parseInt(value);
} catch (NumberFormatException e) {
// 如果无法解析为整数,返回 null
// 这样可以避免反序列化错误,字段会被设置为 null
return null;
}
}
}