Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何强制为嵌套数组完全显示JSON_Json_Powershell - Fatal编程技术网

如何强制为嵌套数组完全显示JSON

如何强制为嵌套数组完全显示JSON,json,powershell,Json,Powershell,我有以下创建JSON的函数: Function New-JSONTest { Param ( [Parameter( ParameterSetName = "NewConfig" )] [switch]$NewConfig ) $PSCustomObject = switch ($PSCmdLet.ParameterSetName) { NewConfig { [PSCusto

我有以下创建JSON的函数:

Function New-JSONTest {
    Param (
        [Parameter( ParameterSetName = "NewConfig" )]
        [switch]$NewConfig
    )

    $PSCustomObject = switch ($PSCmdLet.ParameterSetName) {
        NewConfig { 
            [PSCustomObject]@{
                Menus = @(
                    [PSCustomObject]@{
                        Name = "Produktauswahl"
                        IsEnabledByDefault = $true
                        IsVisibleByDefault = $true
                        IsEnabledIf = ""
                        IsVisibleIf = ""
                        OnClickAction = [PSCustomObject]@{
                            ActionCode = 3
                            Parameter = @(
                                [PSCustomObject]@{
                                    ParameterName = "TestInput.Menü"
                                    ParameterType = "string"
                                    ParameterValue = "Menus.Name"
                                }
                            )
                        }
                    },
                    [PSCustomObject]@{
                        Name = "Grundkonfiguration"
                        IsEnabledByDefault = $false
                        IsVisibleByDefault = $true
                        IsEnabledIf = ""
                        IsVisibleIf = ""
                        OnClickAction = [PSCustomObject]@{
                            ActionCode = 3
                            Parameter = @(
                                [PSCustomObject]@{
                                    ParameterName = "TestInput.Menü"
                                    ParameterType = "string"
                                    ParameterValue = "Menus.Name"
                                }
                            )
                        }
                    },
                    [PSCustomObject]@{
                        Name = "Zubehörkonfiguration"
                        IsEnabledByDefault = $false
                        IsVisibleByDefault = $true
                        IsEnabledIf = ""
                        IsVisibleIf = ""
                        OnClickAction = [PSCustomObject]@{
                            ActionCode = 3
                            Parameter = @(
                                [PSCustomObject]@{
                                    ParameterName = "TestInput.Menü"
                                    ParameterType = "string"
                                    ParameterValue = "Menus.Name"
                                }
                            )
                        }
                    },
                    [PSCustomObject]@{
                        Name = "Konfiguration abschliessen"
                        IsEnabledByDefault = $false
                        IsVisibleByDefault = $true
                        IsEnabledIf = ""
                        IsVisibleIf = ""
                        OnClickAction = [PSCustomObject]@{
                            ActionCode = 3
                            Parameter = @(
                                [PSCustomObject]@{
                                    ParameterName = "TestInput.Menü"
                                    ParameterType = "string"
                                    ParameterValue = "Menus.Name"
                                }
                            )
                        }
                    }
                )
            }
        }
    }

    # Return as JSON
    $PSCustomObject | ConvertTo-Json
}
如您所见,在每个
菜单
对象中,我有一个
OnClickAction
对象,另一个嵌套在数组中的
PSCustomObject

当我运行代码时,返回的每个
菜单如下所示:

{
  "Name": "Produktauswahl",
  "IsEnabledByDefault": true,
  "IsVisibleByDefault": true,
  "IsEnabledIf": "",
  "IsVisibleIf": "",
  "OnClickAction": "@{ActionCode=3; Parameter=System.Object[]}"
}
我是否可以强制它也在扩展的JSON中显示我的
OnClickAction
,而不是在不可读的数组中?基本上,我最终需要的是:

{
    "Menus": [
        {
            "Name": "Produktauswahl",
            "IsEnabledByDefault": true,
            "IsVisibleByDefault": true,
            "IsEnabledIf": "",
            "IsVisibleIf": "",
            "OnClickAction": {
                "ActionCode": "3",
                "Parameter": [
                    "ParameterName": "TestInput.Menü"
                    "ParameterType": "string"
                    "ParameterValue": "Menus.Name"  
                ]
            }
        }
    ]
}

这是可能的还是我误解了什么?

默认情况下,
转换为Json
的默认深度限制为2,但您可以使用
-depth
设置深度。对于Json,深度为5应该可以:

$PSCustomObject | ConvertTo-Json -Depth 5