【Powershell】json形式の文字列を値の抽出が可能なオブジェクトに変換する

Powershell Powershell

[json形式の文字列を値の抽出が可能なオブジェクトとして変換してみました。

コマンドとして[ConvertFrom-Json]を利用します。

広告

json形式の文字列を値の抽出が可能なオブジェクトに変換する

準備

以下の内容のjson.txtを用意します。

{
    "color":  [
                  "red",
                  "blue",
                  "green",
                  "pink"
              ],
    "hoge":  "hoge"
}

その後、以下のコマンドを実行して変数$jsonを作成します。
パスは自身の環境のものに置き換えてください。

$json = Get-Content "c:\<ファイル格納パスを記載>\json.txt"

準備はこれで完了です。

json形式の文字列を値の抽出が可能なオブジェクトに変換する

$jsonの変数をオブジェクト化して、colorに格納されているredという値を取り出します。

#ConvertFrom-Jsonでオブジェクト化
$json_obj = $json | ConvertFrom-Json

#colorの1つ目の値を取り出す
$json_obj.color[0]

実行結果

以下のように値を取り出せるようになりました。

PS C:\> #ConvertFrom-Jsonでオブジェクト化
PS C:\> $json_obj = $json | ConvertFrom-Json
PS C:\>
PS C:\> #colorの1つ目の値を取り出す
PS C:\> $json_obj.color[0]
red
PS C:\>

[参考] ConvertFrom-Jsonを利用していない状態の実行結果

ConvertFrom-Jsonを利用しない場合の実行結果は以下のようになります。
エラーとなり値を取り出すことはできません。

PS C:\> $json.color[0]
null 配列にインデックスを付けることはできません。
発生場所 行:1 文字:1
+ $json.color[0]
+ ~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) []、RuntimeException
    + FullyQualifiedErrorId : NullArray

PS C:\>

コメント

タイトルとURLをコピーしました