少し階層の深い連想配列をJSON化してみます。
$data = [PSCustomObject]@{
'A' = [PSCustomObject]@{
'B' = [PSCustomObject]@{
'C' = [PSCustomObject]@{
'D' = @( 7, 8, 9)
}
}
}
}
$data | ConvertTo-Json
結果は次の様になりました。
{
"A": {
"B": {
"C": "@{D=System.Object[]}"
}
}
}
連想配列4層目Dキーとその値の配列が文字列で表現されています。
ConvertTo-JSONにDepthオプションで4を指定してみます。
$data = [PSCustomObject]@{
'A' = [PSCustomObject]@{
'B' = [PSCustomObject]@{
'C' = [PSCustomObject]@{
'D' = @( 7, 8, 9)
}
}
}
}
$data | ConvertTo-Json -Depth 4
結果は次の様になります。
{
"A": {
"B": {
"C": {
"D": [
7,
8,
9
]
}
}
}
}
全て処理されています。
PowerShellのConvertTo-Jsonを使う場合Depthオプションを指定してあげないと思わぬ結果がもたらされるかもしれないことを学びました。
コメント