Powershell ConvertTo-json со встроенной хэш-таблицей

У меня проблема с ConvertTo-Json, и я пытался понять поведение и / или что я делаю неправильно.

Рассмотрим эту последовательность команд:

$val=@{ID=10;Config=@{ID=11;Config=@{ID=12;Config='end'}}}
ConvertTo-json $val
ConvertTo-json @($val)

Первое преобразование дает такой вывод:

{
    "ID":  10,
    "Config":  {
                   "ID":  11,
                   "Config":  {
                                  "ID":  12,
                                  "Config":  "end"
                              }
               }
}

Второе преобразование дает такой вывод:

[
    {
        "ID":  10,
        "Config":  {
                       "ID":  11,
                       "Config":  "System.Collections.Hashtable"
                   }
    }
]

Кажется, что в случае массива преобразование является неправильным. Любые идеи о том, почему это происходит?

2 ответа

Решение

Это проблема с глубиной, значение по умолчанию 2, вы можете попробовать:

ConvertTo-json @($val) -Depth 5
-Depth $([int32]::MaxValue)

задает бесконечную глубину (максимально возможная для командлета ConvertTo-Json)

Другие вопросы по тегам