8

バイナリデータを扱うのはこれが初めてなので、まったくの初心者です。私はものをアップロードするための REST サービスを作成しており、Base64 でエンコードされた文字列を受け取ります。

これ(標準 Java) を見つけました。また、Spring の内部クラス (悪い考え) も見つけました。

Base64 からプロパティを自動的にデコードする Jackson アノテーションはありますか? オブジェクトで String または byte[] を使用する必要がありますか?

私はSpring MVC 3も使用しているので、これを行うためにSpringフレームワークのクラスを用意しても問題ありません。

[どうか、Apache Commons はやめてください。これ以上物を追加せずに解決策を見つけたい]

4

3 に答える 3

20

プロパティに使用するbyte[]と、Base64 エンコーディング/デコーディングが「正常に動作」します。追加することは何もありません。

さらに、Jackson は次のような明示的な変換を行うことができます。

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

スタンドアロンの Base64 エンコード/デコードに Jackson を使用する場合。

于 2012-11-17T03:45:20.903 に答える
8

Java8 を使用している場合、Base64 エンコード/デコードが完全にサポートされるようになり、サードパーティ ライブラリは不要になりました。さらに、さらにシンプルになり (3 行から 2 行に削減)、もう少し簡単になりました。

byte[] decodedBytes = Base64.getDecoder().decode(encodedString);
String decodedString = new String(decodedBytes);
于 2015-12-17T00:34:50.297 に答える