这是我第一次尝试处理二进制数据,所以我很新的这一点。 我上传的东西写一个REST服务,我会收到一个Base64编码的字符串。
我发现这个 (标准Java),而且我还发现了一个内部弹簧类(坏主意)。
是否有杰克逊注释自动解码的Base64从一个属性? 我应该使用字符串或字节[]在我的对象?
我还使用Spring MVC的3,所以这将是确定有来自Spring框架类来做到这一点。
[请,没有Apache的百科全书。 我想找到一个解决方案而无需添加更多的东西]
这是我第一次尝试处理二进制数据,所以我很新的这一点。 我上传的东西写一个REST服务,我会收到一个Base64编码的字符串。
我发现这个 (标准Java),而且我还发现了一个内部弹簧类(坏主意)。
是否有杰克逊注释自动解码的Base64从一个属性? 我应该使用字符串或字节[]在我的对象?
我还使用Spring MVC的3,所以这将是确定有来自Spring框架类来做到这一点。
[请,没有Apache的百科全书。 我想找到一个解决方案而无需添加更多的东西]
使用byte[]
财产和Base64编码/解码“只是工程”。 没有额外的事情。
此外,杰克逊可以像做明确的转换:
ObjectMapper mapper = new ObjectMapper();
byte[] encoded = mapper.convertValue("Some text", byte[].class);
String decoded = mapper.convertValue(encoded, String.class);
如果你想用杰克逊单机Base64编码/解码。
对于使用Java8那些,Base64编码/解码现在完全支持,不再需要第三方库。 加上它的更简单(从三线降低到二)和多一点的直线前进。
byte[] decodedBytes = Base64.getDecoder().decode(encodedString);
String decodedString = new String(decodedBytes);
有与一个行的解决方案base64编码/解码问题官方弹簧在工具类的文档 。
byte[] bytes = Base64Utils.decodeFromString(b64String);