使用 Get-Content 并将 json 文件分成 3 部分

Use Get-Content and split json file into 3 parts

如果我有一个 json 文件,格式如下:

{
    "server" : {
        "name" : "myUbuntuServer1",
        "imageRef" : "3afe97b2-26dc-49c5-a2cc-a2fc8d80c001",
        "flavorRef" : "9" }
}
{
    "server" : {
        "name" : "myUbuntuServer2",
        "imageRef" : "3afe97b2-26dc-49c5-a2cc-a2fc8d80c001",
        "flavorRef" : "6" }
}
{
    "server" : {
        "name" : "myUbuntuServer3",
        "imageRef" : "3afe97b2-26dc-49c5-a2cc-a2fc8d80c001",
        "flavorRef" : "3" }
}

我如何根据文件中检测到的服务器数量将其拆分并将每个块分配为数组项,即

数组项 0

{
    "server" : {
        "name" : "myUbuntuServer1",
        "imageRef" : "3afe97b2-26dc-49c5-a2cc-a2fc8d80c001",
        "flavorRef" : "9" }
}

数组项 1

{
    "server" : {
        "name" : "myUbuntuServer2",
        "imageRef" : "3afe97b2-26dc-49c5-a2cc-a2fc8d80c001",
        "flavorRef" : "6" }
}

数组项 2

{
    "server" : {
        "name" : "myUbuntuServer3",
        "imageRef" : "3afe97b2-26dc-49c5-a2cc-a2fc8d80c001",
        "flavorRef" : "3" }
}

到目前为止,这是我的代码:

$file = "servers.json"
$request = Get-Content $file
createServer $request

我想根据服务器将文件拆分成多个段,然后将 $request 赋值和 createServer 函数包装在一个 for 循环中,并将数组中的每一项传递过去。

所以它看起来像:

$file = "servers.json"
$request = Get-Content $file

#split file up into three here and assign to an array

foreach ($request in $array) {
    createServer $request
}

我如何在 Powershell v2 中完成此操作?

JSON格式错误,这是一个有效的格式:

{
    "servers": [
        {
            "name": "myUbuntuServer1",
            "imageRef": "3afe97b2-26dc-49c5-a2cc-a2fc8d80c001",
            "flavorRef": "9"
        },
        {
            "name": "myUbuntuServer1",
            "imageRef": "3afe97b2-26dc-49c5-a2cc-a2fc8d80c001",
            "flavorRef": "9"
        },
        {
            "name": "myUbuntuServer1",
            "imageRef": "3afe97b2-26dc-49c5-a2cc-a2fc8d80c001",
            "flavorRef": "9"
        }
    ]
}

您可以在其中迭代 servers 键值,它已经是一个数组。 希望对你有帮助。