package com.emax.zhenghe.common.deserializer; import cn.hutool.core.collection.CollectionUtil; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.annotation.JacksonStdImpl; import org.apache.commons.lang.StringUtils; import java.io.IOException; import java.util.ArrayList; import java.util.List; /** * 将List String 类型字段转为 List Long 类型 * * @author zhuzhibin * @create 2024-07-18 10:11 */ @JacksonStdImpl @Deprecated public class ToListLongDeserializer extends JsonDeserializer<List<Long>> { @Override public List<Long> deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException { if (StringUtils.isBlank(jsonParser.getText())) { return null; } JsonNode node = jsonParser.getCodec().readTree(jsonParser); List<Long> lst = null; if (node.isArray()) { lst = new ArrayList<>(); for (JsonNode item : node) { if(StringUtils.isEmpty(item.asText())){ continue; } try{ lst.add(Long.valueOf(item.asText())); } catch (NumberFormatException e) { throw new RuntimeException(e); } } } //添加这行的代码 主要是 35行 把所有的数据 全给过滤掉了 if(CollectionUtil.isEmpty(lst)){ return null; } return lst; } }
后端-反序列化
最新推荐文章于 2024-08-14 22:52:06 发布