私はしばらくの間、データベース blob から byte[] を取得し、それを json に解析してクライアントに送信しようとしていました。最初にデータベースから BLOB を取得し、次に次のようにしてバイト配列を取得します。
MyObject temp = new MyObject()
Blob icon = dbResult.getBlob(1);
temp.setIcon(icon.getBytes(1, (int)icon.length()));
後で、MyObject を解析して json 文字列に変換し、それをクライアントに送り返します。しかし、byte[] を解析するときに json 文字列がかなり壊れているようです。
それがどのように見えるかの例:
[{"icon":"/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAFQAPwDASIAAhEBAxEB/8QAHAAAAQUBAQEAAAAAAAAAAAAAAgEDBAUGAAcI
これを、ジャージーWebサービスであるWebサービスでjsonに解析しました。クライアント側でjsonからクラスオブジェクトに解析しようとすると、IllegalStateException(Gson)がスローされます。
誰がこれが何であるか、私が間違っていることを知っていますか?