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 { @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; } } }