Enr*_*man 5 rest base64 spring-mvc jackson
这是我第一次尝试处理二进制数据,所以我对此很新.我正在写一个用于上传内容的REST服务,我将收到一个Base64编码的字符串.
我发现了这个(标准Java),我也发现了一个内部Spring类(坏主意).
是否有Jackson注释可以自动解码Base64中的属性?我应该在我的对象中使用String还是byte []?
我也使用Spring MVC 3,因此可以从Spring框架中获得一个类来执行此操作.
[拜托,没有Apache Commons.我想找到一个没有添加更多东西的解决方案]
Sta*_*Man 14
使用byte[]财产和Base64编码/解码"只是工程".没什么可做的.
此外,杰克逊可以通过以下方式进行显式转换:
ObjectMapper mapper = new ObjectMapper();
byte[] encoded = mapper.convertValue("Some text", byte[].class);
String decoded = mapper.convertValue(encoded, String.class);
Run Code Online (Sandbox Code Playgroud)
如果你想使用Jackson进行独立的Base64编码/解码.
对于那些使用Java8的用户,现在完全支持Base64编码/解码,不再需要第三方库.此外,它甚至更简单(从三行减少到两行),更直接一点.
byte[] decodedBytes = Base64.getDecoder().decode(encodedString);
String decodedString = new String(decodedBytes);
Run Code Online (Sandbox Code Playgroud)