创建JSON字符串,PowerShell对象

Sud*_*eej 6 powershell json

我无法在此请求上创建变量,因此我可以稍后使用converttojson将变量转换为JSON

{
    "update": {
        "comment": [
            {
                "add": {
                    "body": "Comment added when resolving issue"
                }
            }
        ]
    },

    "transition": {
        "id": "21"
    }
}
Run Code Online (Sandbox Code Playgroud)

试过以下

$jsonRequest = @{
    update= @{
        comment =@{
           add =@{
               body = "$Description"
            }
        }

    }
    transition =@{
        id = $TransactionID
    }
}
Run Code Online (Sandbox Code Playgroud)

但得到如下输出

{
    "transition":  {
                       "id":  1
                   },
    "update":  {
                   "comment":  {
                                   "add":  "System.Collections.Hashtable"
                               }
               }
}
Run Code Online (Sandbox Code Playgroud)

Tes*_*ler 14

注释"在您的JSON中是一个包含哈希表的列表,在您的代码中它是一个包含哈希表的哈希表.

这看起来是正确的,使它成为一个项目的数组:

$jsonRequest = [ordered]@{
    update= @{
        comment = @(
            @{
               add =@{
                   body = "$Description"
                }
            }
        )
    }
    transition = @{
        id = 21
    }
}

$jsonRequest | ConvertTo-Json -Depth 10
Run Code Online (Sandbox Code Playgroud)

而且我已经''[ordered]',所以更新和转换的顺序与代码的顺序相同,尽管这并不重要.

  • 为了澄清,因为我没有看到它提到; 在您的原始输出中,看起来您使用`ConvertTo-Json`而没有`-Depth`参数,这就是为什么add属性只显示类型(`"add":"System.Collections.Hashtable"`)的原因它走得那么深(默认的`-Depth`值是2&max是100). (5认同)