我有一类成就,其图像为byte []。
@Entity
@Table(name = "ACHIEVEMENT")
public class Achievement {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long achievementId;
private byte[] image;
问题是用户将图像URL发送到create的端点
{
"image": "https://img.favpng.com/13/18/21/computer-icons-achievement-trophy-award-png-favpng-TYahJ0mkcwhJYqA1BPqKcSibe.jpg",
}
public ResponseEntity<?> createAchievement(@RequestBody Achievement achievement)
读取请求正文时,Spring引发错误,甚至不允许我将图像转换为字节数组。
JSON解析错误:无法从字符串“ //img.favpng.com/13/18/21/computer-icons-achievement-trophy-award-png-favpng-TYahJ0mkcwhJYqA1BPqKcSibe.jpg”反序列化类型
byte[]
的值:失败将VALUE_STRING解码为base64(MIME-NO-LINEFEEDS):base64内容中的非法字符“:”(代码0x3a);我该怎么做才能将String传递给端点,以便可以转换为字节数组?
最佳答案
问题是,在Achievement类中,您已将“ image”类型定义为“ byte”,但是在json请求中,“ image”类型是String。
您必须在Achievement Class中将“ image”类型更改为String,然后对其进行解码。
关于java - Java Spring JPA-Byte []转换为字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60505010/