2013-07-29 15 views
27

ConvertTo-Jsonに問題があり、その動作や私が間違っていることを理解しようとしていました。埋め込みハッシュテーブルを持つPowershell ConvertTo-json

このコマンドシーケンスを考えてみましょう:最初の変換は、この出力を与える

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

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

第2の変換は、この出力を与える:

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

それはでているようです配列の変換に誤りがあります。なぜこれが起こっているのかについてのアイデアはありますか?

答えて

45

それは、デフォルト値は2で、深さとのトラブルだあなたが試すことができます:

ConvertTo-json @($val) -Depth 5 
+1

ニースを指定し、過ごし今日深み3のJSONが '' @ {name = 1.0} ''として出てきた理由を理解しようとしています。私は最終的にこれを部分的に偶然に渡る前に、質問とすべてを尋ねました。 – Ellesedil

+0

「無限深度」を指定する方法はありますか? –

+0

Microsoftのマニュアルにその情報がありません。私は6以上のテストはしません。理論的には「無限の深さ」、32以上は本当に必要ですか。 – JPBlanc

0
-Depth $([int32]::MaxValue) 

は(をConvertTo-JSONコマンドレットのための可能な最大値)無限の深さ

+0

をConvertTo-JSON:シリアル化のために許可された最大深さは、使用100 – Nick

+0

あります必要以上に大きな値を設定すると、まったく愚かなパフォーマンスが発生します。 –

+0

@ConradBが不思議そこに行くにもいけない...あなたが知っていないという事実のために?私は、深さパラメータがあり、なぜそれが説明としてケースだろうと想定していますが、テストを実行していますか? – PhilAI

関連する問題