阅读量:0
在Java中,可以使用GZIP进行JSON数据的压缩和解压缩操作。以下是一个示例代码:
import org.json.JSONObject; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.zip.GZIPInputStream; import java.util.zip.GZIPOutputStream; public class JSONCompression { // 压缩JSON数据 public static byte[] compressJSON(JSONObject json) throws IOException { byte[] jsonData = json.toString().getBytes(); ByteArrayOutputStream baos = new ByteArrayOutputStream(); try (GZIPOutputStream gzipOut = new GZIPOutputStream(baos)) { gzipOut.write(jsonData); } return baos.toByteArray(); } // 解压缩JSON数据 public static JSONObject decompressJSON(byte[] compressedData) throws IOException { ByteArrayInputStream bais = new ByteArrayInputStream(compressedData); try (GZIPInputStream gzipIn = new GZIPInputStream(bais)) { byte[] buffer = new byte[1024]; ByteArrayOutputStream baos = new ByteArrayOutputStream(); int len; while ((len = gzipIn.read(buffer)) > 0) { baos.write(buffer, 0, len); } String decompressedData = baos.toString(); return new JSONObject(decompressedData); } } public static void main(String[] args) { JSONObject json = new JSONObject(); json.put("key1", "value1"); json.put("key2", "value2"); try { // 压缩JSON数据 byte[] compressedData = compressJSON(json); System.out.println("Compressed data: " + compressedData); // 解压缩JSON数据 JSONObject decompressedJson = decompressJSON(compressedData); System.out.println("Decompressed JSON: " + decompressedJson); } catch (IOException e) { e.printStackTrace(); } } }
在上面的示例中,我们定义了compressJSON
方法用于压缩JSON数据,decompressJSON
方法用于解压缩JSON数据。在main
方法中,我们创建一个简单的JSON对象,然后进行压缩和解压缩操作。最后打印压缩后的数据和解压缩后的JSON对象。