【问题标题】:JSON parse error: Cannot deserialize value of type `byte[]` from StringJSON 解析错误:无法从 String 中反序列化 `byte[]` 类型的值
【发布时间】:2023-02-02 19:45:06
【问题描述】:

我正在使用 Spring Data JPA 开发一个带有 Java 后端的 Android 应用程序。我的一个类代表个人资料图像并包含以下字段:

 @Lob
    @Column(name = "image")
    private byte[] image;

当我调用保存上述类的 Rest API 时,JSON 请求如下所示:

{"image":"[B@23bafb3"}

然后出现描述的错误。我已经看到将图像声明为字符串然后获取字节的建议,但这对我来说似乎不是一个好习惯。

【问题讨论】:

    标签: java android json spring spring-data-jpa


    【解决方案1】:

    问题在于字节 [] 到 JSON 的序列化。 Java 中 byte[] 的默认序列化将导致您显示的字符串表示形式不是二进制图像的有效格式。要将 byte[] 正确序列化为 base64 编码字符串,您可以在 API 中使用自定义序列化器/反序列化器。一种选择是使用 Java 中的 Base64 类将 byte[] 编码为字符串,然后在反序列化期间将字符串解码回 byte[]。

    【讨论】:

      猜你喜欢
      • 2020-07-26
      • 2020-01-14
      • 2017-09-06
      • 2017-10-19
      • 1970-01-01
      • 2018-12-26
      • 1970-01-01
      • 2020-04-13
      • 2020-12-10
      相关资源
      最近更新 更多