PowerShell:分割大JSON文件的策略

时间:2018-07-05 17:01:22

标签: arrays json powershell powershell-v4.0

我正在尝试使用PowerShell将非常大的JSON文件拆分为给定数组的较小文件。例如,此JSON文件:

输入JSON文件

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

需要分为以下JSON文件(假设每个输出文件只能包含headerName3数组的2个元素):

输出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"
    }]
}

因此,每个输出文件每次都需要包含headerName1headerName2,但随后仅包含headerName3数组中的一定数量的元素。 (请注意,这是一个小示例,因此我将按数组中元素的数量对文件进行拆分,但实际上,我想按输出文件的大小进行拆分,以简化操作。)

Here是这个问题的绝妙答案。但是,答案有两个问题:

  1. 答案是C#,而不是PowerShell。
  2. 我确实找到了this关于如何在PowerShell中运行C#的说明。但是,我遇到了“ Newtonsoft”库无法使用的问题,因此无法使此C#-to-PowerShell解决方案正常工作。

所以,我想知道在PowerShell中是否有一种简单的方法可以做到这一点。

0 个答案:

没有答案