gpt4 book ai didi

arrays - 如何使用 PowerShell 将嵌套 JSON 哈希表的内容输出到 PSO?

转载 作者:行者123 更新时间:2023-12-02 23:52:56 25 4
gpt4 key购买 nike

如何在一行中将嵌套 JSON 哈希表的全部内容输出到 PSO?

$json = @"
{
"outer": "value1",
"outerArray": [
"value2",
"value3"
],
"outerHash": {
"inner": "value4",
"innerArray": [
"value5",
"value6"
],
"innerHash": {
"innermost1": "value7",
"innermost2": "value8",
"innermost3": "value9"
}
}
}
"@

当前行为:仅显示一个“级别”
$json | ConvertFrom-Json
outer outerArray outerHash
----- ---------- ---------
value1 {value2, value3} @{inner=value4; innerArray=System.Object[]; innerHash=}

期望行为:递归展开并显示所有哈希/数组内容
$json | ConvertFrom-Json
outer outerArray outerHash
----- ---------- ---------
value1 {value2, value3} @{inner=value4; innerArray=@(value5, value6); innerHash=@{innermost1=value7; innermost2=value8; innermost3=value9}}

以下似乎刷题但没有达到预期的效果:
PowerShell Hashtable from JSON
PSCustomObject to Hashtable
How to output multiple hash tables in Powershell

最佳答案

用户 atscripter向包的所有者发送以下消息'ConvertTo-Expression' :

“我遇到了你的” flatten-object ” 文章,因为我试图修改 PowerShell 的默认行为。我在 stackoverflow 和 technet 上寻求帮助,而不是从头开始编写代码,我想知道调整“扁平对象”以达到预期效果有多困难?它似乎该函数完成了遍历对象的困难部分,我只是不够熟练,无法让它们以所需的格式输出。非常感谢您的输入!

您不必重写 flatten-object cmdlet 或 ConvertTo-Expression cmdlet。
您只需要遍历第一级,然后调用 ConvertTo-Expression每个属性上的 cmdlet(或 native ConvertTo-Json cmdlet):

电源 格式:

$Properties = @{}
($Json | ConvertFrom-Json).PSObject.Properties |
ForEach-Object {$Properties.($_.Name) = $_.Value |
ConvertTo-Expression -Expand -1}
[PSCustomObject]$Properties

结果是:
outer    outerArray        outerHash
----- ---------- ---------
'value1' 'value2','value3' [PSCustomObject]@{'inner'='value4';'innerArray'='value5','value6';'innerHash'=[PSCustomObject]@{'innermost1'='value7';'innermost2'='value8';'innermost3'='value9'}}

json 格式:
($Json | ConvertFrom-Json).PSObject.Properties |
ForEach-Object {$Properties.($_.Name) = $_.Value |
ConvertTo-Json -Depth 5 -Compress}

结果略有不同(Json)格式:
outer    outerArray          outerHash
----- ---------- ---------
"value1" ["value2","value3"] {"inner":"value4","innerArray":["value5","value6"],"innerHash":{"innermost1":"value7","innermost2":"value8","innermost3":"value9"}}

关于arrays - 如何使用 PowerShell 将嵌套 JSON 哈希表的内容输出到 PSO?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54510685/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com