根据长度拆分Json阵列

本文关键字:Json 阵列 拆分 | 更新日期: 2023-09-27 17:59:52

我需要使用GPG加密JSON数组,当长度超过2083个字符后,我需要拆分需要低于2083个字的JSON数组。

为了实现这一点,我将首先对数组进行加密,并检查其长度是否低于2083。如果超过2083,我将把数组拆分为多个数组,然后进行加密。

做这件事的更好方法是什么?

例如:

var a = new List<int> { 1,2,3 etc}; 

当我加密这个数组时,只需考虑字符串将类似于这个

hQEMA%2Fgo0kYbZeCoAQf8DDemzoWdhq97ULWXvTw4v1fFMq%2F%2BO9z%2FYClDvON

假设上面的字符串超过2083个字符,我会像下面这样拆分数组,然后再次加密。

var a = new List<int> { 1,2}; 
var b = new List<int> { 3, 4}; 
var c = new List<int> { 5, 6 etc.};  

有什么想法吗?

根据长度拆分Json阵列

我会创建一个这样的方法并递归调用它。请注意,该方法也是通用的,因此它不限于List<int>,如果您的情况不需要,请删除它。

private const int maxLength = 2083;
public List<string> EncryptList<T>(List<T> list)
{
    List<string> encryptedLists = new List<string>();
    string encrypted = PerformEncryption();
    if (encrypted.Length > maxLength)
    {
        encryptedLists.AddRange(EncryptList<T>(list.Take(list.Count / 2).ToList()));
        encryptedLists.AddRange(EncryptList<T>(list.Skip(list.Count / 2).ToList())); 
    }
    else
    {
        encryptedLists.Add(encrypted);
    }
    return encryptedLists;
}

请注意,我还没有测试过这段代码,所以if语句中的部分可能无法正常工作。