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


