[英]JSON to powershell
**伙计们,有人告诉我:“在你的 POST 正文中,你没有将朋友作为数组传递,”实际 JSON:一旦我将这个 JSON 转换为 powershell 格式,我计划调用一个获取请求,如下所示。
{"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
一样设置它。 您还需要将参数设置为@{}
,而不是{}
否则您将遇到问题,具体取决于您使用的 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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.