Update ImgJsonSerializer.java

cyj
pbvfus8to 8 months ago
parent 86f9b70d3b
commit 692bacb0cd

@ -25,42 +25,76 @@ import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* JSON
* `JsonSerializer<String>`JSON
* URL
* JSONJSON访
*
* @author lanhai
*/
@Component
// 使用 @Component 注解将该类注册为Spring容器中的一个组件方便进行依赖注入等操作
public class ImgJsonSerializer extends JsonSerializer<String> {
@Autowired
// 通过依赖注入获取Qiniu对象该对象可能包含与七牛云相关的配置信息比如七牛云资源的URL等用于处理图片相关逻辑
private Qiniu qiniu;
@Autowired
// 通过依赖注入获取ImgUploadUtil对象该工具类可能用于获取图片上传的相关路径、类型等信息辅助图片处理逻辑
private ImgUploadUtil imgUploadUtil;
/**
*
*
* JSONURL
* URLURL
* JSON
*
* @param value
* @param gen JSONJSONJSON
* @param serializers
* @throws IOException JSONI/O
*/
@Override
public void serialize(String value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
// 判断传入的字符串是否为空空白字符串包含空字符串、全是空格等情况如果为空则直接写入空字符串到JSON生成器中并结束当前方法执行
if (StrUtil.isBlank(value)) {
gen.writeString(StrUtil.EMPTY);
return;
}
// 将传入的字符串按照逗号进行分割,得到一个包含各个图片路径的字符串数组,假设传入的字符串格式是多个图片路径用逗号分隔的形式
String[] imgs = value.split(StrUtil.COMMA);
StringBuilder sb = new StringBuilder();
String resourceUrl = "";
String rule="^((http[s]{0,1})://)";
Pattern pattern= Pattern.compile(rule);
String rule = "^((http[s]{0,1})://)";
Pattern pattern = Pattern.compile(rule);
// 根据图片上传工具类中获取的上传类型来确定资源URL如果上传类型是2可能表示使用七牛云存储从Qiniu对象中获取资源URL
if (Objects.equals(imgUploadUtil.getUploadType(), 2)) {
resourceUrl = qiniu.getResourcesUrl();
} else if (Objects.equals(imgUploadUtil.getUploadType(), 1)) {
}
// 如果上传类型是1可能表示使用其他本地或指定的存储方式从ImgUploadUtil对象中获取对应的资源URL
else if (Objects.equals(imgUploadUtil.getUploadType(), 1)) {
resourceUrl = imgUploadUtil.getResourceUrl();
}
// 遍历分割后的图片路径字符串数组,对每个图片路径进行处理
for (String img : imgs) {
Matcher matcher = pattern.matcher(img);
//若图片以http或https开头直接返回
if (matcher.find()){
// 使用正则表达式匹配器判断图片路径是否已经是以http或https开头即是否已经是完整的URL形式如果是则直接添加到结果字符串构建器中并添加逗号作为分隔后续会删除最后一个多余的逗号
if (matcher.find()) {
sb.append(img).append(StrUtil.COMMA);
}else {
} else {
// 如果图片路径不是完整的URL形式则添加之前确定好的资源URL前缀再添加图片路径本身然后添加逗号作为分隔构建完整的可访问的图片路径形式
sb.append(resourceUrl).append(img).append(StrUtil.COMMA);
}
}
sb.deleteCharAt(sb.length()-1);
// 删除最后一个多余的逗号(因为在循环中每次添加路径后都添加了逗号,最后一个逗号是多余的)
sb.deleteCharAt(sb.length() - 1);
// 将处理好的完整图片路径字符串写入到JSON生成器中完成对图片相关字符串的JSON序列化操作
gen.writeString(sb.toString());
}
}
}
Loading…
Cancel
Save