【问题标题】:Parsing base64 using JSON file in Java在 Java 中使用 JSON 文件解析 base64
【发布时间】:2014-08-12 08:12:51
【问题描述】:

我想问一下通过 JSON 发送 base64 编码二进制文件的最佳方式是什么。通过url读取json文件是否更快,或者将其作为字符串参数读取或转换为字节格式并发送过来。这实际上会减少base64的开销。 目前我正在使用简单的json还是应该切换到jackson?任何指针

【问题讨论】:

  • 使用纯 JSON 作为application/json 不够快?您是否面临任何需要解决的问题?
  • 目前我已经用小文件进行了测试,我没有发现任何性能问题,但在实际场景中,我们将能够通过 JSON 接收多个转换为 base64 的 PDF。我正在尝试提前计划哪种方法可以减少 base64 的开销。
  • 如何将 PDF 文件“通过 JSON 转换为 base64”?我不明白你的情况。你想做什么?
  • @Tichodroma :我的意思是 JSON 文件包含 base64 编码的二进制文件示例 { "binary" : "hc3VyZS4=" }

标签: java jackson base64 json


【解决方案1】:

使用数据绑定时,Jackson 会自动编码/解码为 base64。例如 POJO 之类的:

java class Binary { public int id; public byte[] data; }

在写入时将正确地对其data 成员进行 Base64 编码,在读取时对其进行解码。 实现有些优化,除非内容非常大,否则开销很可能是微不足道的。但是,如果您担心,您可以通过简单的基准测试轻松测量开销(如果您这样做,我建议使用 jmh)。

FWIW,我没有收到任何与 Jackson 项目的 Base64 处理性能相关的错误或反馈——据我所知,这不是常见的问题之一。

【讨论】:

  • 忘了说:即使直接使用流API(JsonParserJsonGenerator),也很容易对二进制数据进行编码/解码:其中包含单词“binary”的方法('writeBinaryValue( )` 或类似) 指的是基础价值的自动 Base64 处理。
  • 谢谢会试一试
猜你喜欢
  • 1970-01-01
  • 2016-04-05
  • 2015-03-09
  • 1970-01-01
  • 1970-01-01
  • 2019-06-09
  • 2017-07-10
  • 2017-09-05
  • 2022-11-14
相关资源
最近更新 更多