PowerShell 为日历项形成格式正确的 json

PowerShell to form correctly formatted json for calendar entry

在创建新的 Google 日历条目时,我正在努力让 PowerShell 形成格式正确的 json 条目。

一个正确配置的json,被GC接受的如下:

'{"end": {"dateTime": "2017-06-07T15:00:00Z"},
 "start": {"dateTime": "2017-06-07T10:00:00Z"}
}'

但是,从哈希表形成 json(因此我可以使用变量 dateTime)并不能正确形成它,例如:

$body=@{
    start="2017-06-08T10:00:00Z"
    end="2017-06-08T12:00:00Z"}

$json = $body | ConvertTo-Json

$json返回如下:

{
    "start":  "2017-06-08T10:00:00Z",
    "end":  "2017-06-08T12:00:00Z"
}

这不被 Google Cal API 接受,在使用 OAuth 2.0 游乐场进行测试时 returns 出现以下错误:

{
  "error": {
    "code": 400, 
    "message": "Missing end time.", 
    "errors": [
     {
        "domain": "global", 
        "message": "Missing end time.", 
        "reason": "required"
     }
   ]
 }

关于如何使用 PowerShell 形成格式正确的开始和结束日期有什么想法吗?

谢谢:)

使用嵌套:

$body=@{
 start=@{"datetime" = "2017-06-08T10:00:00Z"}
 end=@{"datetime" = "2017-06-08T12:00:00Z"}} | ConvertTo-Json

输出:

{
    "start":  {
                  "datetime":  "2017-06-08T10:00:00Z"
              },
    "end":  {
                "datetime":  "2017-06-08T12:00:00Z"
            }
}