ConvertTo-Json コマンドレット や ConvertFrom-Json コマンドレットを使用することで、JSON ファイルに変換したり、JSONデータを読み込む方法について説明をしました。
今回は、Test-Json コマンドレットを使用して、取り扱うデータが JSON データとして有効かどうをか判断する方法について説明をします。
Test-Json の書式
Test-Json の書式は以下の通りです。
Test-Json [-Json] <string> [[-Schema] <string>] [<CommonParameters>]
Test-Json で JSON データとして有効化を判断する
以下のように、$json 変数に JSON データが代入されているとします。
PS > $json = '{ >> "Name": "HIRO", >> "Birthday": "1972/6/19", >> "Age": 47 >> }'
この $json を Test-Json を使用して確認をすると、以下のように True を返します。
True は、JSON データとして有効であることを示します。
PS > Test-Json $json True
続いて False が返されるパターンについても確認をしてみましょう。
先ほどの $json を以下のように編集して、JSON としては無効なデータにしてみます(キーと値の間の「:」を削除しています)。
PS > $json = '{ >> "Name" "HIRO", >> "Birthday" "1972/6/19", >> "Age" 47 >> }'
この $json を Test-Json を使用して確認をすると、以下のように エラーメッセージと False を返します。
PS > Test-Json $json Test-Json: Cannot parse the JSON. False
連想配列のデータが JSON ファイルに変換できるかを確認するには?
連想配列データが JSON データに変換可能かを確認する例を以下に示します。
連想配列そのものは JSON データではありませんので、一度 ConvertTo-Json を使用して JSON に変換し、パイプで Test-Json に渡してチェックをします。
PS > $json = @{Name="HIRO"; Age=47; Birthday="1972/6/19"} PS > ConvertTo-Json $json | Test-Json True
コメント