PowerShellでハッシュに設定したパラメータをJSON文字列に変換するには、ConvertTo-Json コマンドレット、
受け取ったJSON文字列をPowerShellで操作できるようにするには、ConvertFrom-Json コマンドレットを使用することで簡単に実現できます。
以下、ConvertTo-JsonコマンドレットとConvertFrom-Jsonコマンドレットの使用例を記します。
ConvertTo-JsonコマンドレットによるハッシュからJSON文字列に変換する操作例を以下に記します。
PS C:\> $h2 = @{uid="sakura"; pwd="password"} PS C:\> $h1 = @{domain="just4fun.biz"; user=$h2}
PS C:\> $h1 Name Value ---- ----- user {pwd, uid} domain just4fun.biz
PS C:\> $h1 | ConvertTo-Json { "user": { "pwd": "password", "uid": "sakura" }, "domain": "just4fun.biz" }
PS C:\> $json = ($h1 | ConvertTo-Json)文字列(String)であることが確認できます。
PS C:\> $json.GetType() IsPublic IsSerial Name BaseType -------- -------- ---- -------- True True String System.Object
上記で$json変数に設定したJSON文字列を使用します。
PS C:\> $json { "user": { "pwd": "password", "uid": "sakura" }, "domain": "just4fun.biz" }
PS C:\> $json | ConvertFrom-Json user domain ---- ------ @{pwd=password; uid=sakura} just4fun.biz
PS C:\> ($json | ConvertFrom-Json).GetType() IsPublic IsSerial Name BaseType -------- -------- ---- -------- True False PSCustomObject System.Object
PS C:\> $o = ($json | ConvertFrom-Json) PS C:\> $o user domain ---- ------ @{pwd=password; uid=sakura} just4fun.biz PS C:\> $o.domain just4fun.biz PS C:\> $o.user pwd uid --- --- password sakura PS C:\> $o.user.uid sakura PS C:\> $o.user.pwd password上記の通り、値を簡単に取り出すことができます。
以上、ConvertFrom-Json, ConvertTo-Jsonコマンドレットを使用して、
JSON文字列からPowerShellで扱いやすいPSCustomObjectへの変換、ハッシュテーブルからJSON文字列に変換する方法の紹介でした。