見事にはまったので、情報共有です。
皆さん JSON は使ってますか?
Rest API を叩く際に JSON は欠かせないですし、他のシステムにデータを渡す際にもちょいちょい使います。
PowerShell も Rest API を叩けますし、JSON も簡単に扱うことが出来ます。
オブジェクトや、ハッシュテーブルを JSON する場合は、ConvertTo-Json 一発ですね
|
コンバートされた JSON はこんな感じになります。
とても便利な ConvertTo-Json ですが、こいつネストが深くなるとコンバートが出来ないって恥ずかしながら知らなかったです。
例えばこんな感じ
|
出力された JSON はこうなっています。
Level3 がコンバートされずに "System.Collections.Hashtable" となってしまいました。
当初これは仕様なのか? 自力で JSON にするか...
と途方にくれたのですが(実際に JSON
にするコード書いちゃいました w)、ConvertTo-Json のオプションを確認すると -Depth ってオプションがあり、default 2
だそうで...
なるほど、では -Depth を 3 にするとどうなるか
|
無事に Level3 もコンバートされました。
ConvertTo-Json を使う際は、-Depth オプションも気にかけましょうね。
ちなみに、ConvertFrom-Json にも -Depth ありますので、こちらも同様だと思います。
以上情報共有でした
Copyright © MURA All rights reserved.