以Json格式从MySQL获取byte []

时间:2012-07-21 21:27:30

标签: mysql json blob gson

我一直试图从我的数据库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)。

任何人都知道这是关于什么以及我做错了什么?

1 个答案:

答案 0 :(得分:3)

如果您尝试使用json传输二进制数据,则最好使用base64对其进行显式编码,然后在接收方进行解码。 JSON不是为了包装二进制文件而设计的,因此在尝试实现这一点时可能存在问题。