diff --git a/CHANGELOG.md b/CHANGELOG.md index 78412988d..0e4e67f09 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ ------------------------------------------------------------------------------------------------------------- -# 5.8.3.M1 (2022-06-05) +# 5.8.3.M1 (2022-06-06) ### 🐣新特性 * 【extra 】 mail增加writeTimeout参数支持(issue#2355@Github) @@ -11,6 +11,7 @@ ### 🐞Bug修复 * 【core 】 修复NumberUtil.isXXX空判断错误(issue#2356@Github) * 【core 】 修复Convert.toSBC空指针问题(issue#I5APKK@Gitee) +* 【json 】 修复Bean中存在bytes,无法转换问题(issue#2365@Github) ------------------------------------------------------------------------------------------------------------- diff --git a/hutool-core/src/main/java/cn/hutool/core/convert/impl/ArrayConverter.java b/hutool-core/src/main/java/cn/hutool/core/convert/impl/ArrayConverter.java index ae4d72fe2..99cf27b2d 100644 --- a/hutool-core/src/main/java/cn/hutool/core/convert/impl/ArrayConverter.java +++ b/hutool-core/src/main/java/cn/hutool/core/convert/impl/ArrayConverter.java @@ -1,5 +1,6 @@ package cn.hutool.core.convert.impl; +import cn.hutool.core.codec.Base64; import cn.hutool.core.collection.IterUtil; import cn.hutool.core.convert.AbstractConverter; import cn.hutool.core.convert.Convert; @@ -124,6 +125,16 @@ public class ArrayConverter extends AbstractConverter { return convertArrayToArray(value.toString().toCharArray()); } + //issue#2365 + // 字符串转bytes,首先判断是否为Base64,是则转换,否则按照默认getBytes方法。 + if(targetComponentType == byte.class){ + final String str = value.toString(); + if(Base64.isBase64(str)){ + return Base64.decode(value.toString()); + } + return str.getBytes(); + } + // 单纯字符串情况下按照逗号分隔后劈开 final String[] strings = StrUtil.splitToArray(value.toString(), CharUtil.COMMA); return convertArrayToArray(strings); diff --git a/hutool-core/src/main/java/cn/hutool/core/img/ImgUtil.java b/hutool-core/src/main/java/cn/hutool/core/img/ImgUtil.java index 7fc019675..a13290c26 100755 --- a/hutool-core/src/main/java/cn/hutool/core/img/ImgUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/img/ImgUtil.java @@ -1046,7 +1046,7 @@ public class ImgUtil { /** * 旋转图片为指定角度
- * 来自:http://blog.51cto.com/cping1982/130066 + * 来自:http://blog.51cto.com/cping1982/130066 * * @param image 目标图像 * @param degree 旋转角度 diff --git a/hutool-json/src/test/java/Issue2365Test.java b/hutool-json/src/test/java/Issue2365Test.java new file mode 100644 index 000000000..f3d0aafaa --- /dev/null +++ b/hutool-json/src/test/java/Issue2365Test.java @@ -0,0 +1,21 @@ +import cn.hutool.json.JSONUtil; +import lombok.Data; +import org.junit.Assert; +import org.junit.Test; + +public class Issue2365Test { + + @Test + public void toBeanTest(){ + String jsonStr = "{\"fileName\":\"aaa\",\"fileBytes\":\"AQ==\"}"; + final FileInfo fileInfo = JSONUtil.toBean(jsonStr, FileInfo.class); + Assert.assertEquals("aaa", fileInfo.getFileName()); + Assert.assertArrayEquals(new byte[]{1}, fileInfo.getFileBytes()); + } + + @Data + public static class FileInfo { + private String fileName; + private byte[] fileBytes; + } +}