powershell - Invoke-RestMethod: POST Assoc-Array 使用 JSON 到 WebService (System.Collections.Hashtable)
问题描述
我想将关联数组发布到 Web 服务。
因此,我以这种方式在 PowerShell 中创建数组:
$Data = @{
"MyProperty" = "bla bla";
"MyFolder" = @{
"MySubFolder1" = @{
"MySubProperty" = "bla bla";
}
"MySubFolder2" = @{
"MySubProperty" = "bla bla";
}
}
}
我使用以下行将数据发布到 Web 服务:
$Response = Invoke-RestMethod -Method Post -Uri $URL -Body $Data
关键是,并不是整个阵列都到达了网络服务。
只有顶层数据被正确接收。嵌套数组不可访问。(System.Collections.Hashtable)
它看起来像这样:
Array
(
[MyProperty] => bla bla
[MyFolder] => System.Collections.Hashtable
)
我也确实尝试Invoke-WebRequest
过使用Invoke-RestMethod
ConvertTo-JSON,但我无法找到一个干净的解决方案来将数据很好地传输到 Web 服务。
我怎么解决这个问题?
谢谢!
解决方案
$Data
必须使用ConvertTo-JSON
.
使用以下代码行可以解决问题:
$Response = Invoke-RestMethod -Method Post -Uri $URL -Body ( $Data | ConvertTo-JSON -Compress ) -ContentType "application/json; charset=utf-8"
推荐阅读
- c# - 如何将复杂类型传递给 Html.LabelFor?
- c# - 如何将 gRPC 客户端注入单例服务?
- python - python tkinter 使用多处理或多线程,程序被冻结
- here-api - 降水百分比单位
- javascript - 如何在开放式 Web 分析 (OWA) 中设置自定义访客 ID?
- c++ - 这段代码究竟做了什么来检查碰撞
- c# - 使用 Automapper 从对象列表转换为二维数组属性
- liquid - 使用 Shopify 液体和 AlpineJs 动态生成嵌套菜单
- python - 稳定的 Baselines3 参数 Logits 具有无效值
- java - 如何按两个标准对集合进行排序?