Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Powershell ConvertTo-json with embedded hashtable

I'm having a problem with ConvertTo-Json and was trying to understand the behavior and/or what I'm doing wrong.

Consider this sequence of commands:

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

The first conversion gives this output:

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

The second conversion gives this output:

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

It seems that in the array case the conversion is incorrect. Any ideas on why this is happening?

like image 475
Andy Sipe Avatar asked Jul 29 '13 16:07

Andy Sipe


1 Answers

It's a trouble with the depth, the default value is 2, can you try :

ConvertTo-json @($val) -Depth 5
like image 132
JPBlanc Avatar answered Oct 17 '22 12:10

JPBlanc