PowerShell: стратегия разделения большого файла JSON - PullRequest
0 голосов
/ 05 июля 2018

Я пытаюсь разделить очень большие файлы JSON с помощью PowerShell на файлы меньшего размера для заданного массива. Например, этот файл JSON:

Входной файл JSON

{
    "headerName1": "headerVal1",
    "headerName2": "headerVal2",
    "headerName3": [{
        "element1Name1": "element1Value1"
    },
    {
        "element2Name1": "element2Value1"
    },
    {
        "element3Name1": "element3Value1"
    },
    {
        "element4Name1": "element4Value1"
    },
    {
        "element5Name1": "element5Value1"
    },
    {
        "element6Name1": "element6Value1"
    }]
}

необходимо разделить на эти файлы JSON (при условии, что каждый выходной файл может содержать только 2 элемента массива headerName3):

Выходной файл JSON 1

{
    "headerName1": "headerVal1",
    "headerName2": "headerVal2",
    "headerName3": [{
        "element1Name1": "element1Value1"
    },
    {
        "element2Name1": "element2Value1"
    }]
}

Выходной файл JSON 2

{
    "headerName1": "headerVal1",
    "headerName2": "headerVal2",
    "headerName3": [{
        "element3Name1": "element3Value1"
    },
    {
        "element4Name1": "element4Value1"
    }]
}

Выходной файл JSON 3

{
    "headerName1": "headerVal1",
    "headerName2": "headerVal2",
    "headerName3": [{
        "element5Name1": "element5Value1"
    },
    {
        "element6Name1": "element6Value1"
    }]
}

Таким образом, каждый выходной файл должен содержать headerName1 и headerName2 каждый раз, но затем содержать только определенное количество элементов из массива headerName3. (Примечание: это небольшой пример, поэтому я делю файл по количеству элементов в массиве, но в действительности я хочу разделить его по размеру выходного файла, чтобы упростить задачу.)

Здесь - отличный ответ на этот вопрос. Однако у меня есть две проблемы с ответом:

  1. Ответ в C #, а не в PowerShell.
  2. Я нашел это объяснение того, как запустить C # в PowerShell. Однако я столкнулся с проблемой недоступности библиотеки «Newtonsoft», поэтому не могу заставить работать это решение C # -to-PowerShell.

Итак, мне интересно, есть ли простой способ сделать это в PowerShell.

...