farm模块-图片转换

This commit is contained in:
顾君禹
2025-08-21 15:29:15 +08:00
parent 71ac684397
commit 8c2afa97e5

View File

@@ -0,0 +1,42 @@
package cn.iocoder.yudao.module.farm.framework.json;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonToken;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* 支持字符串或字符串数组反序列化为逗号分隔的字符串
*/
public class StringOrArrayToStringDeserializer extends JsonDeserializer<String> {
@Override
public String deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
JsonToken currentToken = p.getCurrentToken();
if (currentToken == JsonToken.VALUE_STRING) {
return p.getValueAsString();
}
if (currentToken == JsonToken.START_ARRAY) {
List<String> values = new ArrayList<>();
while (p.nextToken() != JsonToken.END_ARRAY) {
if (p.getCurrentToken() == JsonToken.VALUE_STRING) {
values.add(p.getValueAsString());
} else {
// 跳过非字符串元素
p.skipChildren();
}
}
return values.stream().filter(s -> s != null && !s.isEmpty()).distinct().collect(Collectors.joining(","));
}
// 其他类型,跳过
p.skipChildren();
return null;
}
}