farm模块-图片转换
This commit is contained in:
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user