C# 压缩 JSON 数据的实现 - 使用 GZip 压缩
以下是一个使用 Newtonsoft.Json 和 System.IO.Compression 命名空间的 C# 代码示例,可以将 JSON 对象压缩为 GZip 格式:
using System.IO.Compression;
using Newtonsoft.Json;
public static byte[] CompressJson(object data)
{
var json = JsonConvert.SerializeObject(data);
var uncompressedData = System.Text.Encoding.UTF8.GetBytes(json);
using (var outputStream = new MemoryStream())
{
using (var gzipStream = new GZipStream(outputStream, CompressionMode.Compress))
{
gzipStream.Write(uncompressedData, 0, uncompressedData.Length);
}
return outputStream.ToArray();
}
}
使用示例:
var data = new { name = 'Alice', age = 30 };
var compressedData = CompressJson(data);
解压缩 Gzip 格式的数据也非常简单,使用 System.IO.Compression 命名空间中的 GZipStream 即可:
public static T DecompressJson<T>(byte[] compressedData)
{
using (var inputStream = new MemoryStream(compressedData))
{
using (var gzipStream = new GZipStream(inputStream, CompressionMode.Decompress))
{
using (var reader = new StreamReader(gzipStream))
{
var json = reader.ReadToEnd();
return JsonConvert.DeserializeObject<T>(json);
}
}
}
}
使用示例:
var decompressedData = DecompressJson<dynamic>(compressedData);
Console.WriteLine(decompressedData.name); // Output: Alice
Console.WriteLine(decompressedData.age); // Output: 30
原文地址: https://www.cveoy.top/t/topic/msAr 著作权归作者所有。请勿转载和采集!