PowerShell で JSON オブジェクトをファイルに書き込む

Migel Hewage Nimesha 2023年1月30日
  1. PowerShell カスタムオブジェクト
  2. PowerShellJSON オブジェクトから JSON 文字列
  3. JSON 文字列をファイルに保存
PowerShell で JSON オブジェクトをファイルに書き込む

PowerShell は、構造化データの作成に使用できる非常に強力なオブジェクトベースの言語です。したがって、プレーンテキストよりも操作が簡単です。

PowerShell カスタムオブジェクト

PSCustomObject は PowerShell オブジェクトのベースです。プロパティと値が含まれています。

したがって、PowerShell は JSON オブジェクトも処理できます。

JSON の例から JSON カスタムオブジェクトを作成してみましょう。 $MyJsonVar 変数に JSON を割り当てました。

$MyJsonVar = @"
 {
   "ExampleJson":{
     "Fruit1":{
       "Name":"Apple",
       "Price":"`$10.00"
     }
  }
 }
"@

出力:

PowerShell カスタムオブジェクト 1

ConvertFrom-JSON コマンドレットを使用して実際の JSON オブジェクトを作成する必要があります。これにより、実際の PSCustomObject が作成されます。

新しく作成した JSON オブジェクトを $MyJsonObject 変数に割り当てましょう。

$MyJsonObject = $MyJsonVar | ConvertFrom-Json

新しく作成された JSON オブジェクト PSCustomObject を表示してみましょう。

$MyJsonObject

出力:

PowerShell カスタムオブジェクト 2

そのプロパティによって JSON オブジェクトにアクセスできます。

$MyJsonObject.ExampleJson.Fruit1.Price
$MyJsonObject.ExampleJson.Fruit1.Name

出力:

PowerShell カスタムオブジェクト 3

そのため、$MyJsonObject という適切な PowerShell カスタムオブジェクトを取得したことが確認されました。

PowerShellJSON オブジェクトから JSON 文字列

ConvertTo-Json コマンドレットは、既存のカスタムオブジェクトを JSON 文字列に変換できます。これは、JSON 形式のプレーンテキストになります。

構文:

ConvertTo-Json
              [-InputObject] <Object>
              [-Depth <Int32>]
              [-Compress]
              [-EnumsAsStrings]
              [-AsArray]
              [-EscapeHandling <StringEscapeHandling>]
              [<CommonParameters>]

上記のすべてのパラメーターは、ConvertTo-Json コマンドレットのオプションです。

-Depth パラメータは、JSON 文字列のレベル数を指定できます。これは重要なパラメータであり、慎重に使用する必要があります。

このパラメータを誤って使用すると、データが失われる可能性があります。デフォルト値は 2 です。

-InputObject パラメータは、JSON 文字列に変換する必要があるカスタムオブジェクトを指定します。カスタムオブジェクトを ConvertTo-Json コマンドレットに簡単にパイプできます。

パイプ(|)を介して $MyJsonObject を送信し、カスタムオブジェクトを JSON 文字列に変換できます。

$MyJsonObject | ConvertTo-Json

出力:

JSON オブジェクトから JSON 文字列

JSON 文字列をファイルに保存

PowerShell を使用して JSON 文字列をファイルに保存することができます。JSON 文字列の出力を Out-File コマンドレットにパイプできます。

.json ファイルを作成する必要があるパスを指定することができます。

$MyJsonObject | ConvertTo-Json | Out-File "D:\misc\example.json"

パス"D\misc\example.json"は異なる場合があります。これにより、指定されたディレクトリ構造内に example.json ファイルが作成されます。

出力:

JSON 文字列をファイルに保存する

JSON カスタムオブジェクトは、JSON 形式で example.json ファイルに保存されています。

Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.

関連記事 - PowerShell JSON