[英]How to convert powershell array to json using ConvertTo-Json?
[英]powershell convert the date property to string when using ConvertTo-Json
我想从Get-VM
cmdlet 获取所有 Hyper-V VM 信息,如下所示:
Get-Vm | Select-Object * | ConvertTo-Json
每个 VM 字典中的CreationTime
在输出中看起来像\\/Date(-11644473600000)\\/",
如何2017/11/29 16:09:00
在输出 json 中看起来像这种格式2017/11/29 16:09:00
?
当我猜测它是 Epoch 时间戳的数量时,我发现它有时是一个负数。
我发现一些关于这个问题的文章以Get-Date
为例,但在我的情况下,它是Get-VM
中的一个属性,我不确定是否有一种更快的方法来转换日期属性而无需长脚本来解析输出。
要根据用户定义的表达式选择属性,可以通过以下方式在Select-Object
定义它们:
Get-VM | Select-Object -Property @{Name="ReadableCreationTime"; Expression={Get-Date $_.CreationTime}}, *
这将选择用户定义的属性ReadableCreationTime
和所有其他属性 ( *
)。
现在,您想排除原始CreationTime
因为它 a) 难以阅读并且 b) 对ReadableCreationTime
来说是多余的。 这可以使用-ExcludeProperty
参数来完成:
Get-VM | Select-Object -Property @{Name="ReadableCreationTime"; Expression={Get-Date $_.CreationTime}}, * -ExcludeProperty CreationTime
...并将结果通过管道传输到ConvertTo-Json
请记住,在读取生成的 json 时,您必须解析日期,因为它只是一个字符串,而不是有效的 Date 值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.