我正在像这样用java压缩gzip格式的数据
Object obj = parser.parse(new FileReader("/home/netstorm/FinalFunnelData.json"));
JSONObject jsonObject = (JSONObject) obj;
String data = jsonObject.toJSONString();
ByteOutputStream bos = new ByteOutputStream();
GZIPOutputStream gzip = new GZIPOutputStream(bos);
byte B_ARRAY[] = new byte[1024];
gzip.write(data.trim().getBytes());
gzip.close();
// response.setHeader("Content-Type", "application/json");
//response.setHeader("Content-Encoding", "gzip");
System.out.println(bos.toString());
out.println(bos.toString());
但是我无法在javascript端解压缩它?
答案 0 :(得分:1)
您的代码中唯一突出的是:
out.println(bos.toString());
gzip的数据是二进制的,因此您无法将其视为文字(toString()
和println
)。
我不是Java专家,但您可能想尝试
GZIPOutputStream gzip = new GZIPOutputStream(out);
直接提供out
,而不是先将其放在ByteOutputStream
中,它可能会做正确的事情。