1

我尝试制作这样的对象:

$bodyObject = [pscustomobject]@{
    'fields' = [pscustomobject]@{
        'fixVersions' = @([pscustomobject]@{
            'id' = $releaseId
        })
    }
};
$bodyJson = $bodyObject | ConvertTo-Json;
Write-Output $bodyJson;

我得到以下输出:

{
    "fields": {
        "fixVersions": [
            "@{id=16919}"
        ]
    }
}

我怎样才能实现这样的有效 JSON 结构?

{
    "fields": {
        "fixVersions": [
            {"id": "16919"}
        ]
    }
}
4

1 回答 1

2

当我刚刚提出一个问题时,我突然想到了这个想法。问题不在于创建我的复杂对象,而在于 json 序列化器。根据文档,默认 -Depth 参数值为 2。所以,我改变了这样的代码

$bodyObject = [pscustomobject]@{
    'fields' = [pscustomobject]@{
        'fixVersions' = @([pscustomobject]@{
            'id' = $releaseId
        })
    }
};
$bodyJson = $bodyObject | ConvertTo-Json -Depth 3; # HERE
Write-Output $bodyJson;

并得到了正确的 JSON

于 2021-03-22T21:04:05.557 回答