在我的Oracle表中,我使用BLOB字段来保存字节数组,该数组最初是来自页面上用户输入的JSON字符串。
例如,这是客户端传递给服务器的内容:
“{ 'AD_ID_NBR': '440111111111177777'}”
在服务器端,它将被转换为字节数组并存储到BLOB中。
byte[] bytes = input.getUserInput();//userInput is byte[]
ps.setBlob(2, new ByteArrayInputStream(bytes));
将用户输入返回到客户端时,我需要反过来。
input.setUserInput(rs.getBlob("USER_INPUT").getBytes(1l, (int)rs.getBlob("USER_INPUT").length()));
然后在客户端我会得到:
“userInput”:“eydBRF9JRF9OQlInOic0NDAxMTExMTExMTExMjIyMjInfQ ==”
显然这不是我需要的。有些转换应该在这里完成。
我的问题是如何将此字符串转换为我之前保存的json字符串。谢谢。
Blob blob = rs.getBlob("USER_INPUT");
byte[] bdata = blob.getBytes(1, (int) blob.length());
String s = new String(bdata);