【问题标题】:Converting JSON Raw data into Powershell Format将 JSON 原始数据转换为 Powershell 格式
【发布时间】:2020-07-24 03:54:56
【问题描述】:

我正在尝试向其发送触发器的热扫描仪。我可以使用邮递员达到预期的效果,但我需要一个独立的脚本来实现这一点,所以我一直在使用 powershell。制造商文档仅将 POST 指定为 application/json 并提供要在正文中发送的原始格式,如下所示:

{
  "data": [
    {
      "output": "DO2",
      "mode": "ON",
      "duration": 5,
      "delay": false
    }
  ]
}

就像我说的那样,使用邮递员获得所需的结果没有任何问题,但我不知道如何在 powershell 中对其进行格式化。 Powershell 没有抱怨我的代码,但设备没有像邮递员那样接受命令,可能是因为我的代码是垃圾并且设备没有正确接收数据。文档说要在正文中输入这些数据,所以我定义了正文变量并在 Invoke-Restmethod 时简单地调用该变量:

$body = ConvertTo-Json @(
  '{"data":[
    {
      "output": "DO2"
      "mode": "ON"
      "duration": "5"
      "delay": false
      }
    ]
    }'
)

任何帮助将不胜感激,并提前致谢!

【问题讨论】:

    标签: json powershell


    【解决方案1】:

    在需要转换为 json(JavaScript Object Notation)的对象上使用ConvertTo-Json,它基本上是以结构化的方式描述对象的文本。

    看起来您已经将正文的信息作为有效的 json 字符串,所以在您的情况下,为 json 正文使用 Here-String

    $body = @'
    {
      "data": [
        {
          "output": "DO2",
          "mode": "ON",
          "duration": 5,
          "delay": false
        }
      ]
    }
    '@ 
    

    并在您的Invoke-Restmethod 通话中使用它

    【讨论】:

    • 是的,这行得通。我一般是编码新手,主要是做网络编码,所以我想我在这里没有得到什么。非常感谢您的帮助,我已经为此工作了一天半!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-21
    • 2022-11-16
    • 2016-08-05
    • 1970-01-01
    • 2014-04-25
    • 1970-01-01
    相关资源
    最近更新 更多