我一直试图从我的数据库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
我在我的webservice中将这个解析为json,这是一个jersery webservice。当我尝试将它从json解析为客户端的类对象时,它会抛出IllegalStateException(Gson)。
任何人都知道这是关于什么以及我做错了什么?
答案 0 :(得分:3)
如果您尝试使用json传输二进制数据,则最好使用base64对其进行显式编码,然后在接收方进行解码。 JSON不是为了包装二进制文件而设计的,因此在尝试实现这一点时可能存在问题。