如何让PowerShell中ConvertTo-Json输出的键为小写?
如何让PowerShell输出的JSON键为小写?
当然可以实现!要让你执行的PowerShell命令输出的JSON键变成小写形式,这里有两种实用的方法:
方法一:手动定义计算属性(适合属性数量少的情况)
直接在Select-Object里用哈希表重新命名每个属性为小写,再转换为JSON:
Get-Service | Select-Object @{Name='displayname'; Expression={$_.DisplayName}}, @{Name='status'; Expression={$_.Status}}, @{Name='name'; Expression={$_.Name}} | ConvertTo-Json
原理很简单:我们给每个需要保留的属性指定了小写的名称(Name字段),然后通过Expression取原属性的值,这样转换后的JSON键自然就是小写的了。
方法二:自动遍历属性转换(适合属性多的场景)
如果后续需要处理更多属性,不想手动一个个写,可以用这个更通用的方法:
Get-Service | ForEach-Object { # 创建一个空哈希表来存储小写键和对应的值 $lowercaseProps = @{} # 遍历当前服务对象的所有属性 $_.PSObject.Properties | ForEach-Object { # 将属性名转为小写后存入哈希表 $lowercaseProps[$_.Name.ToLower()] = $_.Value } # 把哈希表转为自定义对象 [PSCustomObject]$lowercaseProps } | Select-Object displayname, status, name | ConvertTo-Json
这个方法会自动把对象的所有属性名转为小写,之后你可以通过Select-Object筛选出需要的属性,再转成JSON,非常灵活。
内容的提问来源于stack exchange,提问作者Matt
相关产品推荐
相关产品推荐

