【发布时间】:2019-06-27 20:55:01
【问题描述】:
如何将嵌套 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
【问题讨论】:
-
您可能需要添加注释,当您寻址
.outerhash时,innerarray确实显示为一个数组。 ///// 我找不到任何关于为什么在显示更高级别时它没有展开的任何信息。 -
PowerShell 默认输出格式不适合您。我会说您需要编写一个自定义格式化函数,该函数递归到散列中并将数据(子)结构破坏为字符串。
-
@Lee_Dailey @ AnsgarWiechers - 感谢您的参与!
标签: arrays json powershell hash expand