首页 > 解决方案 > 如何使用编码的base64图像从Json文件中获取字节[]

问题描述

我有一个包含 JSON 结构化数据的文件,其中一个属性是 Base64 编码图像。我使用 POJO 映射到 Java 对象,并将上述图像属性指定为 String 类型。(尝试过byte[]但无法创建 Java 对象,所以我使用了 String。)

现在我必须使用属性类型为的 JPA 实体将其保存到数据库中byte[]

实体:

@Lob
private byte[] profilePic;

DTO:

private String profilePic;

问题

dto.getProfilePic().getBytes()

或者

getBytes("utf-8")

正在更改图像并且它已损坏。图像正在从类似的东西改变iVBORw0KGgoAAAANSUhEUgAAB.....

89504E470D0A1A0A0000000D4948445200....

注意: 内容在 JSON 格式的文件中

是否可以byte[]使用任何其他 JSON 库从文件序列化?使用的库是 Gson。

Gson gson = new Gson(); 
StagingDTO[] infoArray = gson.fromJson(reader, StagingDTO[].class);

或者有什么方法可以byte[]从文件中获取?

标签: javagson

解决方案


您可以使用 java.util.Base64.decode()。此方法获取 Base64 字符串并返回 byte[]。您最终应该保存 byte[]。


推荐阅读