Reputation: 305
Am trying to generate the below JSON string in PowerShell:
[
{
"FirstName": "Test",
"LastName": "Account2"
}
]
The code I have at the moment in PowerShell is:
$Body = @{
@{
FirstName='Test'
LastName='Account2'
}
}
The error I get with this is: Missing '=' operator after key in hash literal.
Upvotes: 13
Views: 54675
Reputation: 33
I had some problems adding new items to the Powershell list. I tried to add an item using the .add() function. This returned the error "Collection was of a fixed size."
Adding items to the list is just simple by using the += symbol.
$Body += @{FirstName='Test2'; LastName='Account3'}
That simple.
Upvotes: 1
Reputation: 29033
The outer []
is a list in JSON and you're trying to use @{}
, which is a hashtable in PowerShell. Use @()
which is an array (list) in PowerShell:
$Body = @(
@{
FirstName='Test'
LastName='Account2'
}
)
ConvertTo-Json -InputObject $Body
(and I use -InputObject instead of piping, because PowerShell is obsessed with flattering lists, and drops the list otherwise).
Upvotes: 29