PowerShell ConvertTo-json avec hashtable intégré

J'ai un problème avec ConvertTo-Json et j'essayais de comprendre le comportement et/ou ce que je fais mal.

Considérer cette séquence de commandes:

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

la première conversion donne cette sortie:

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

la deuxième conversion donne cette sortie:

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

il semble que dans le cas du tableau la conversion est incorrecte. Toutes les idées sur le pourquoi de ce qui se passe?

28
demandé sur JPBlanc 2013-07-29 20:40:53

2 réponses

C'est un problème avec la profondeur, la valeur par défaut est 2, pouvez-vous essayer :

ConvertTo-json @($val) -Depth 5
51
répondu JPBlanc 2013-07-31 13:44:45
-Depth $([int32]::MaxValue)

spécifie une profondeur infinie (maximum possible pour ConvertTo-Json cmdlet)

0
répondu YMM 2016-05-13 09:58:13