JSON to powershell



**伙计们,我被告知:"在您的POST主体中,您不会将朋友作为数组传递,";实际的JSON:一旦我把这个JSON转换成powershell格式,我就计划调用一个get请求,如下所示。

{"friends":[{"friendId":"abc1234-456Yes-repeat"}],"wowMorefriends":{"morefriendsId":{"hmmmMoreFriendsId":"09876tyuhtre-repeated"}},"callMe":0,"param":{}}

Powershell代码:

$Data = @{
friends = @{"friendId" = "abc1234-456Yes-repeat"}
wowMorefriends = @(
@{
"morefriendsId" = @{"hmmmMoreFriendsId" = "09876tyuhtre-repeated"}
"callMe" = 0
"param" = {}
}
)
}


$JsData = $Data | ConvertTo-Json -Compress

$JsData


Invoke-WebRequest -Method Post -Uri "https://App1.Callingmyfriends.com/api/callactions/run" -Body $JsData -ContentType 'application/json' -WebSession $cookieSession -Headers $requestHeaders -UseBasicParsing

我做错什么了吗?

如果friends应该是一个对象数组,那么您希望以在@()中设置wowMoreFriends的方式设置它。此外,您还需要将param设置为@{},而不是{},否则会出现问题,具体取决于您使用的Powershell版本。

$Data = @{
friends = @(
@{
"friendId" = "abc1234-456Yes-repeat"
}
)
wowMorefriends = @(
@{
"morefriendsId" = @{"hmmmMoreFriendsId" = "09876tyuhtre-repeated"}
"callMe" = 0
"param" = @{}
}
)
}

但除此之外,morefriendsId已经超过了ConvertTo-Json默认的最大深度。因此,您还需要通过-Depth设置更大的深度,例如:

$JsData = $Data | ConvertTo-Json -Compress -Depth 4

最新更新