# JsonCompress

A static class for serializing, compressing, and decompressing objects using JSON serialization and Brotli compression.

### Compress

Serializes and compresses an object using JSON serialization and Brotli compression.

#### Example:

```csharp
object data = new { Name = "John", Age = 30 };
byte[] compressedData = JsonCompress.Compress(data);
```

### Decompress

Decompresses the given byte array and deserializes it into type T.

#### Example:

```csharp
byte[] compressedData = ...; // The compressed byte array
MyClass data = JsonCompress.Decompress<MyClass>(compressedData);
```

### DecompressList

Decompresses the given byte array and deserializes it into a List of type T.

#### Example:

```csharp
byte[] compressedData = ...; // The compressed byte array
List<MyClass> dataList = JsonCompress.DecompressList<MyClass>(compressedData);
```

### EncryptCompress

Serializes, encrypts, and compresses an object using JSON serialization and Brotli compression.

#### Example:

```csharp
var obj = new MyObject();
var key = "mykey";
var iv = "myiv";

byte[] result = EncryptionHelper.EncryptCompress(obj, key, iv);
```

### DecryptDecompress

Decrypts and decompresses the given byte array and deserializes it into type T.

#### Returns:

Type T deserialized from the decompressed byte array.

#### Example:

```csharp
byte[] compressedData = GetCompressedData();
var key = "mykey";
var iv = "myiv";

MyObject obj = DecryptionHelper.DecryptDecompress<MyObject>(compressedData, key, iv);
```

### DecryptDecompressList

Decrypts and decompresses the given byte array and deserializes it into a List of type T.

#### Example:

```csharp
byte[] compressedData = GetCompressedData();
var key = "mykey";
var iv = "myiv";

List<MyObject> list = DecryptionHelper.DecryptDecompressList<MyObject>(compressedData, key, iv);
```
