请注意:
C:\> [array]@(1,2) | ConvertTo-Json
[
1,
2
]
C:\> [array]@(1) | ConvertTo-Json
1
C:\> [array]@() | ConvertTo-Json
C:\>
我希望从最后两种情况中分别得到[1]和[]。
因此,如果我想使用标准的ConvertTo-Json
方法,即使数组只包含1个或0个元素,我如何可靠地执行它?
请注意,当数组是转换为json的复杂对象的一部分时,后处理结果是不可行的。
编辑1
C:\> $PSVersionTable
Name Value
---- -----
PSVersion 5.1.17763.592
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.17763.592
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
C:\> [array]@(1) | ConvertTo-Json -AsArray
ConvertTo-Json : A parameter cannot be found that matches parameter name 'AsArray'.
At line:1 char:30
+ [array]@(1) | ConvertTo-Json -AsArray
+ ~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [ConvertTo-Json], ParameterBindingException
+ FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.ConvertToJsonCommand
C:\>
-AsArray
开关。 - AdminOfThings-AsArray
仅在PowerShell _Core_中受支持;还要注意它与空数组的预期行为不同:例如,ConvertTo-Json -AsArray @() -Compress
返回[[]]
。 - mklement0