Wyjście PowerShell z zagnieżdżonych typów danych

Próbuję utworzyć zagnieżdżoną strukturę danych z jakiegoś wejścia i ostatecznie przekonwertować ją na JSON, ale mam problem, gdy staje się zbyt głęboki.

Struktura będzie tablicą mieszania, gdzie jeden element jest inną tablicą mieszania.

To ustawia dwie tablice mieszania$baz1 i$baz2

PS D:\> $baz1 = @(@{foo="foo1"; bar="bar1"};@{foo="foo2";bar="bar2"};@{foo="foo3";bar="bar3"})
PS D:\> $baz2 = @(@{foo="foo1"; bar="bar1"};@{foo="foo2";bar="bar2"};@{foo="foo3";bar="bar3"})

Jak widać, wszystkie powyższe tablice:

PS D:\> $baz1

Name                           Value
----                           -----
bar                            bar1
foo                            foo1
bar                            bar2
foo                            foo2
bar                            bar3
foo                            foo3


PS D:\> $baz1|ConvertTo-Json
[
    {
        "bar":  "bar1",
        "foo":  "foo1"
    },
    {
        "bar":  "bar2",
        "foo":  "foo2"
    },
    {
        "bar":  "bar3",
        "foo":  "foo3"
    }
]
PS D:\>

Ale kiedy dodam tablicę do$fuz wszystko ma kształt gruszki:

PS D:\> $fuz = @(@{foo="bar"; bash=$baz1};@{foo="beep";bash=$baz2})
PS D:\> $fuz

Name                           Value
----                           -----
foo                            bar
bash                           {System.Collections.Hashtable, System.Collections.Hashtable, System.Collections.Hashtable}
foo                            beep
bash                           {System.Collections.Hashtable, System.Collections.Hashtable, System.Collections.Hashtable}


PS D:\> $fuz|ConvertTo-Json
[
    {
        "foo":  "bar",
        "bash":  [
                     "System.Collections.Hashtable",
                     "System.Collections.Hashtable",
                     "System.Collections.Hashtable"
                 ]
    },
    {
        "foo":  "beep",
        "bash":  [
                     "System.Collections.Hashtable",
                     "System.Collections.Hashtable",
                     "System.Collections.Hashtable"
                 ]
    }
]

Nawet bez$baz1 krok

PS D:\> @(@{foo="bar"; bash=@(@{foo="foo1"; bar="bar1"};@{foo="foo2";bar="bar2"};@{foo="foo3";bar="bar3"})};@{foo="beep";bash=$baz2})

Name                           Value
----                           -----
foo                            bar
bash                           {System.Collections.Hashtable, System.Collections.Hashtable, System.Collections.Hashtable}
foo                            beep
bash                           {System.Collections.Hashtable, System.Collections.Hashtable, System.Collections.Hashtable}


PS D:\>

Naprawdę doceniam pomoc tutaj!

questionAnswers(1)

yourAnswerToTheQuestion