# 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);
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.perigee.software/core-modules/utility-classes/jsoncompress.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
