[アルゴリズム] GZIP圧縮アルゴリズムを使用して、送信されるJSON文字列を圧縮します

送信される JSON 文字列を圧縮するには、GZIP 圧縮アルゴリズムを使用できます。GZIP を使用して JSON 文字列を圧縮および解凍する方法を示すサンプル コードを次に示します。

圧縮された JSON 文字列:

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.zip.GZIPOutputStream;

public class JsonCompression {
    
    
    public static byte[] compressJson(String json) throws IOException {
    
    
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        GZIPOutputStream gzipOutputStream = new GZIPOutputStream(outputStream);
        gzipOutputStream.write(json.getBytes("UTF-8"));
        gzipOutputStream.close();
        return outputStream.toByteArray();
    }
}

上記のコードでは、まず ByteArrayOutputStream オブジェクトを作成し、次に GZIPOutputStream オブジェクトを使用して JSON 文字列を ByteArrayOutputStream に書き込み、GZIPOutputStream を閉じます。最後に、ByteArrayOutputStream の toByteArray() メソッドを呼び出して、圧縮データをバイト配列に変換します。

JSON 文字列を解凍します。

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.zip.GZIPInputStream;

public class JsonCompression {
    
    
    public static String decompressJson(byte[] compressedData) throws IOException {
    
    
        ByteArrayInputStream inputStream = new ByteArrayInputStream(compressedData);
        GZIPInputStream gzipInputStream = new GZIPInputStream(inputStream);
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();

        byte[] buffer = new byte[1024];
        int len;
        while ((len = gzipInputStream.read(buffer)) > 0) {
    
    
            outputStream.write(buffer, 0, len);
        }

        gzipInputStream.close();
        outputStream.close();

        return outputStream.toString("UTF-8");
    }
}

上記のコードでは、まず ByteArrayInputStream オブジェクトを作成して受信圧縮データを入力ストリームとして受け取り、次に GZIPInputStream オブジェクトを作成してデータを解凍します。次に、ByteArrayOutputStream オブジェクトを使用して、解凍されたデータをキャッシュします。GZIPInputStream のデータをループで読み取り、ByteArrayOutputStream に書き込みます。最後に、GZIPInputStream と ByteArrayOutputStream を閉じて、解凍されたデータを文字列に変換します。

上記のコードにより、送信された JSON 文字列を圧縮および解凍できます。特定の実装は実際のニーズに応じて異なる場合があり、独自の状況に応じて調整および拡張できることに注意してください。

おすすめ

転載: blog.csdn.net/gao511147456/article/details/132013922