【发布时间】:2021-05-03 21:45:58
【问题描述】:
我有一个包含 JSON 结构化数据的文件,其中一个属性是 Base64 编码图像。我使用 POJO 映射到 Java 对象,并将上述图像属性指定为 String 类型。
(试过byte[]但无法创建Java对象,所以我使用了String。)
现在我必须使用属性类型为 byte[] 的 JPA 实体将其保存到数据库中。
实体:
@Lob
private byte[] profilePic;
DTO:
private String profilePic;
问题:
dto.getProfilePic().getBytes()
或
getBytes("utf-8")
正在更改图像并且图像已损坏。图像从iVBORw0KGgoAAAANSUhEUgAAB..... 之类的东西改变了
到89504E470D0A1A0A0000000D4948445200....
注意: 内容在 JSON 格式的文件中
是否可以使用任何其他 JSON 库从文件序列化到 byte[]?使用的库是 Gson。
Gson gson = new Gson();
StagingDTO[] infoArray = gson.fromJson(reader, StagingDTO[].class);
或者有什么方法可以从文件中获取byte[]?
【问题讨论】:
-
gist.github.com/orip/3635246 (而不是 android.util 您可能在堆栈中有另一个 base64en/decoder;..e.g. java.util ;) 和 ...stackoverflow.com/q/48399176/592355 ;) ..当你这样做正确,
byte[]应该是可能的(在 DTO 中也是如此)。