基于长度分割Json阵列

时间:2016-08-02 15:23:22

标签: c# json

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

为了达到这个目的,我将首先对阵列进行加密并检查其长度是否低于2083,如果超过I,我会将阵列拆分为多个阵列然后进行加密。

这样做的更好方法是什么?

例如:

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.};  

任何想法?

1 个答案:

答案 0 :(得分:0)

我会创建一个类似的方法并递归调用它。请注意,该方法也是通用的,因此不会限制为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语句中的部分可能无法正常工作。