当前位置: 首页 > 知识库问答 >
问题:

Java·spring JPA-Byte[]转换为String

胡璞瑜
2023-03-14

我用一个byte[]的图像取得了一类成就。

@Entity
@Table(name = "ACHIEVEMENT")
public class Achievement {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long achievementId;
private byte[] image;

问题是用户将图像URL发送到create的endpoint

{
    "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-acquirement-trophy-award-png-favpng-tyahj0mkcwhjyqa1bpqkcsibe.jpg”反序列化byte[]类型的值:无法将VALUE_STRING解码为base64(MIME-NO-LINEFEEDS):base64内容中的非法字符“:”(代码0x3A);

我可以做什么来允许字符串传递到endpoint,这样我就可以转换成字节数组了?

共有1个答案

鄂琛
2023-03-14

问题是,在您的成就类中,您已经将“image”类型定义为“byte”,但在json请求中,“image”类型是String。

您必须在成就类中将“image”类型更改为String,然后对其进行解码。

 类似资料:
  • 我目前正在开发一个C#web API。对于特定的调用,我需要使用对API的ajax调用发送2个图像,以便API可以将它们保存为数据库中的varbinary(max)。 null

  • 问题内容: 无法将image.image转换为[] byte。问题点用虚线包裹。 基本上,我需要new_image为[] byte格式,以便可以将其发送到我的S3存储桶。 谢谢您的帮助。 问题答案: 您需要一个byte.Buffer,而不是bufio.Writer。bytes.Buffer在需要写入器的写入器时使用。bufio.Writer只是在将数据转发到另一个写入器之前将其缓存在内存中。

  • 问题内容: 我有一个表示RGB图像的整数数组,想将其转换为字节数组并将其保存到文件中。 在Java中将整数数组转换为字节数组的最佳方法是什么? 问题答案: 正如Brian所说,您需要确定需要什么样的转换。 您是否要将其保存为“正常”图像文件(jpg,png等)? 如果是这样,您可能应该使用Java Image I / O API。 如果要以“原始”格式保存,则必须指定写入字节的顺序,然后使用和NI

  • 问题内容: 我有一个byte.Buffer,我使用binary.Write()函数包装了数据。然后,我需要将此字节数组发送到C函数。使用Go 1.6时,我未能成功解决这一问题。 它在调用C函数的行上失败: C函数: 我能够使以下内容正常工作,但将字节数组转换为字符串感觉不对。有一个更好的方法吗?这种方法是否会对数据产生副作用? 同样,这需要在Go 1.6(引入了更严格的cgo指针规则)下工作。 谢

  • 问题内容: 我将类型为DataTable的对象保存到SQL 2005数据库中的类型为varbinary的字段中。我想找回它,但无法键入强制转换。这就是我保存它的方式。 “ dt”是DataTable对象实例。 问题答案: 您在说的是二进制序列化和反序列化。也许这会有所帮助。

  • 我想使用反应性编程将我的excel文件存储到我的数据库中。在非反应式中,这很容易做到,但我不能在反应式中做类似的事情,我应该写什么来存储它到我的mongo数据库中?