1

I try to make an object like this:

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

I got the following output:

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

How can I achieve valid JSON structure like this?

{
    "fields": {
        "fixVersions": [
            {"id": "16919"}
        ]
    }
}
Laser42
  • 646
  • 2
  • 7
  • 24

1 Answers1

2

When I just composed a question, the idea came to me. The problem was not in the way of creating my complex object, but in json serilizator. According to docs, default -Depth parameter value is 2. So, I changed the code like this

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

and got a correct JSON

Laser42
  • 646
  • 2
  • 7
  • 24