PowerShellで連想配列をJSONでシリアライズする。

powershell コンピュータ
powershell

連想配列をJSONに変換してみます。

$data = @{
  'A' = 1
  'B' = 2
  '$Type' = 3
}

$data | ConvertTo-Json

結果は次の通り

{
    "$Type":  3,
    "B":  2,
    "A":  1
}

連想配列を初期化した順番とは結果が異なります。

次に連想配列をPSCustomObjectにキャストしてみます。

$data = [PSCustomObject]@{
  'A' = 1
  'B' = 2
  '$Type' = 3
}

$data | ConvertTo-Json

結果は次の様になりました。

{
    "A":  1,
    "B":  2,
    "$Type":  3
}

正式に調べたわけでは無いので、たまたまそうなった可能性もありますが、連想配列をPSCustomObjectにキャストしてあげると、初期化した順番の通りにJSON化されていました。

コメント