解码的Base64杰克逊(或Spring)(Decode Base64 with Jackson (

2019-08-02 19:48发布

这是我第一次尝试处理二进制数据,所以我很新的这一点。 我上传的东西写一个REST服务,我会收到一个Base64编码的字符串。

我发现这个 (标准Java),而且我还发现了一个内部弹簧类(坏主意)。

是否有杰克逊注释自动解码的Base64从一个属性? 我应该使用字符串或字节[]在我的对象?

我还使用Spring MVC的3,所以这将是确定有来自Spring框架类来做到这一点。

[请,没有Apache的百科全书。 我想找到一个解决方案而无需添加更多的东西]

Answer 1:

使用byte[]财产和Base64编码/解码“只是工程”。 没有额外的事情。

此外,杰克逊可以像做明确的转换:

ObjectMapper mapper = new ObjectMapper();
byte[] encoded = mapper.convertValue("Some text", byte[].class);
String decoded = mapper.convertValue(encoded, String.class);

如果你想用杰克逊单机Base64编码/解码。



Answer 2:

对于使用Java8那些,Base64编码/解码现在完全支持,不再需要第三方库。 加上它的更简单(从三线降低到二)和多一点的直线前进。

byte[] decodedBytes = Base64.getDecoder().decode(encodedString);
String decodedString = new String(decodedBytes);


Answer 3:

有与一个行的解决方案base64编码/解码问题官方弹簧在工具类的文档 。

byte[] bytes = Base64Utils.decodeFromString(b64String);


文章来源: Decode Base64 with Jackson (or Spring)