java - 如何使用编码的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[]
从文件中获取?
解决方案
您可以使用 java.util.Base64.decode()。此方法获取 Base64 字符串并返回 byte[]。您最终应该保存 byte[]。
推荐阅读
- laravel - 在 Laravel nova 中自定义 Partition Metrics 的值
- azure - 如何在 Azure 数据资源管理器 (ADX) 中禁用导出到 CSV
- python - python相对导入:找不到模块
- python - 如何在 Pandas 数据框中聚合一个累积列表?
- redux - Redux-Persist 不能与 NextJs 的 SSR .getInitialProps() 函数一起使用?
- jsonschema - 寻找依赖 JSON 模式中的最小值/最大值的可能性
- r - 按日期时间列子集数据框?
- python - 无法以 SavedModel 格式保存 Tensorflow
- apache-spark - 为在同一台机器上运行的多个执行器导出 spark executor jmx 指标
- ocr - Mirador 单词突出显示