繁体   English   中英

JSON 至 powershell

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM