【问题标题】:ConvertTo-Json how to keep an order of the hash table fieldsConvertTo-Json如何保持哈希表字段的顺序
【发布时间】:2020-05-14 18:21:28
【问题描述】:

我正在运行以下 PowerShell 代码,我需要保持原始哈希表键的顺序。

function New-GetServiceConnectionTask( $serviceConnectionId)
{
    @{
        environment      = @{ }
        taskId           = '0a9fdc5e-3f3a-4d3d-9f63-a4f007f9a1fe'
        version          = "1.*"
        name             = 'Get Service Endpoint Credentials'
        refName          = ''
        enabled          = $true
        alwaysRun        = $false
        continueOnError  = $false
        timeoutInMinutes = 0
        definitionType   = 'task'
        overrideInputs   = @{ }
        condition        = 'succeeded()'
        inputs           = @{
            connectedServiceNameARM = $serviceConnectionId
        }
    }
}
New-GetServiceConnectionTask xxx | ConvertTo-Json -Depth 99 

函数返回

{
    "version": "1.*",
    "refName": "",
    "definitionType": "task",
    "overrideInputs": {},
    "name": "Get Service Endpoint Credentials",
    "environment": {},
    "inputs": {
        "connectedServiceNameARM": "xxx"
    },
    "timeoutInMinutes": 0,
    "taskId": "0a9fdc5e-3f3a-4d3d-9f63-a4f007f9a1fe",
    "enabled": true,
    "condition": "succeeded()",
    "continueOnError": false,
    "alwaysRun": false
}

是否有任何选项可以保持原始哈希表键的顺序?

【问题讨论】:

    标签: powershell hashtable


    【解决方案1】:

    您可以通过在 @ 符号前面包含 [ordered] 来创建有序哈希,如下所示:

    [ordered]@{
        environment      = @{ }
        taskId           = '0a9fdc5e-3f3a-4d3d-9f63-a4f007f9a1fe'
        version          = "1.*"
        name             = 'Get Service Endpoint Credentials'
        refName          = ''
        enabled          = $true
        alwaysRun        = $false
        continueOnError  = $false
        timeoutInMinutes = 0
        definitionType   = 'task'
        overrideInputs   = @{ }
        condition        = 'succeeded()'
        inputs           = @{
            connectedServiceNameARM = $serviceConnectionId
        }
    }
    

    【讨论】:

    • 请注意,您可能需要在所有@ 符号前添加[ordered],而不仅仅是根级别。
    猜你喜欢
    • 2010-11-28
    • 1970-01-01
    • 2017-05-13
    • 1970-01-01
    • 1970-01-01
    • 2017-03-17
    • 1970-01-01
    • 2014-05-29
    • 2017-02-18
    相关资源
    最近更新 更多