小编sim*_*ull的帖子

嵌套数组和ConvertTo-Json

要使用REST API,我必须传递一个如下所示的JSON对象:

{ "series" : 
  [{  
      "metric": "custom.powershell.gauge",
      "points":[[1434684739, 1000]]
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

请注意这里的嵌套数组.我无法重现这一点.这是我的代码:

[int][double]$unixtime=get-date ( (get-date).ToUniversalTime() ) -UFormat %s
$obj=@{}
$series=@{}
$array=@()
$points=@()
$value=get-random -Minimum 0 -Maximum 100


$series.add("metric","custom.powershell.gauge")
$points=@(@($unixtime, $value))
$series.add("points",$points)
$obj.Add("series",@($series))

$json=$obj | ConvertTo-Json -Depth 30 -Compress
$json
Run Code Online (Sandbox Code Playgroud)

这是输出:

{"series":[{"points":[1434685292,95],"metric":"custom.powershell.gauge"}]}
Run Code Online (Sandbox Code Playgroud)

我尝试了很多东西,我不能让2个数组嵌套,它总是看起来像一个数组.

在同一张纸条上,请有人解释一下:

> $a=(1,2)
> $a
1
2
> $a | ConvertTo-Json
[
    1,
    2
]
> $b=($a,$a)
> $b
1
2
1
2
> $b | ConvertTo-Json
[
    {
        "value":  [
                      1,
                      2
                  ],
        "Count":  2 …
Run Code Online (Sandbox Code Playgroud)

powershell json

6
推荐指数
1
解决办法
1万
查看次数

Powershell 参数集和可选参数

我正在编写一个函数,它的两个参数应该是互斥的可选的。

以下是有效输入:

new-event -Title sometitle -Text sometext -TimestampHappened 1234567 -SomeOtherOptionalParam somestring

new-event -Title sometitle -Text sometext -DateHappened (get-date) -SomeOtherOptionalParam somestring

new-event -Title sometitle -Text sometext -SomeOtherOptionalParam somestring

new-event -Title sometitle -Text sometext
Run Code Online (Sandbox Code Playgroud)

这是一个无效的输入:

new-event -Title sometitle -Text sometext -DateHappened (get-date) -TimestampHappened 1234567 -SomeOtherOptionalParam somestring
Run Code Online (Sandbox Code Playgroud)

到目前为止,这是我的代码:

[CmdletBinding()]

# Most parameters belong to Default, New-Event:ByDate and New-Event:ByTimestamp parameter sets
param (
     [Parameter(
        Position=0,
        Mandatory=$True,
        ParameterSetName="Default"
    )]
    [Parameter(
        Position=0,
        Mandatory=$True,
        ParameterSetName="New-Event:ByDate"
    )]
    [Parameter(
        Position=0,
        Mandatory=$True,
        ParameterSetName="New-Event:ByTimestamp"
    )]
    [ValidateNotNullOrEmpty()]
    [String]$Title, …
Run Code Online (Sandbox Code Playgroud)

parameters powershell parameter-sets

5
推荐指数
1
解决办法
2682
查看次数

标签 统计

powershell ×2

json ×1

parameter-sets ×1

parameters ×1