次の方法で共有


ConvertTo-Json

オブジェクトを JSON 形式の文字列に変換します。

構文

ConvertTo-Json
              [-InputObject] <Object>
              [-Depth <Int32>]
              [-Compress]
              [<CommonParameters>]

説明

ConvertTo-Json コマンドレットは、任意のオブジェクトを JavaScript Object Notation (JSON) 形式の文字列に変換します。 プロパティはフィールド名に変換され、フィールド値はプロパティ値に変換され、メソッドは削除されます。

その後、 ConvertFrom-Json コマンドレットを使用して、JSON 形式の文字列を JSON オブジェクトに変換し、Windows PowerShell で簡単に管理できます。

多くの Web サイトでは、XML ではなく JSON を使用して、サーバーと Web ベースのアプリ間の通信用にデータをシリアル化します。

このコマンドレットは、Windows PowerShell 3.0 で導入されました。

例 1

PS C:\> (Get-UICulture).Calendar | ConvertTo-Json

{
    "MinSupportedDateTime":  "\/Date(-62135596800000)\/",
    "MaxSupportedDateTime":  "\/Date(253402300799999)\/",
    "AlgorithmType":  1,
    "CalendarType":  1,
    "Eras":  [
                 1
             ],
    "TwoDigitYearMax":  2029,
    "IsReadOnly":  false
}

この例では、 ConvertTo-Json コマンドレットを使用して、GregorianCalendar オブジェクトを JSON 形式の文字列に変換します。

例 2

PS C:\> @{Account="User01";Domain="Domain01";Admin="True"} | ConvertTo-Json -Compress

{"Admin":"True","Account":"User01","Domain":"Domain01"}

この例では、-Compress パラメーターを使用した場合の効果を示します。 圧縮は文字列の外観にのみ影響し、その有効性には影響しません。

例 3

PS C:\> Get-Date | Select-Object -Property * | ConvertTo-Json

{

    "DisplayHint":  2,
    "DateTime":  "Friday, January 13, 2012 8:06:16 PM",
    "Date":  "\/Date(1326441600000)\/",
    "Day":  13,
    "DayOfWeek":  5,
    "DayOfYear":  13,
    "Hour":  20,
    "Kind":  2,
    "Millisecond":  221,
    "Minute":  6,
    "Month":  1,
    "Second":  16,
    "Ticks":  634620819762218083,
    "TimeOfDay":  {
                      "Ticks":  723762218083,
                      "Days":  0,
                      "Hours":  20,
                      "Milliseconds":  221,
                      "Minutes":  6,
                      "Seconds":  16,
                      "TotalDays":  0.83768775241087956,
                      "TotalHours":  20.104506057861109,
                      "TotalMilliseconds":  72376221.8083,
                      "TotalMinutes":  1206.2703634716668,
                      "TotalSeconds":  72376.22180829999
                  },
    "Year":  2012
}

この例では、 ConvertTo-Json コマンドレットを使用して、 System.DateTime オブジェクトを Get-Date コマンドレットから JSON 形式の文字列に変換します。 このコマンドでは、Select-Object コマンドレットを使用して、* オブジェクトのすべての () プロパティを取得します。 出力には、 ConvertTo-Json が返した JSON 文字列が表示されます。

例 4

PS C:\> Get-Date | Select-Object -Property * | ConvertTo-Json | ConvertFrom-Json

DisplayHint : 2
DateTime    : Saturday, October 13, 2018 3:28:40 AM
Date        : 10/13/2018 12:00:00 AM
Day         : 13
DayOfWeek   : 6
DayOfYear   : 286
Hour        : 3
Kind        : 2
Millisecond : 346
Minute      : 28
Month       : 10
Second      : 40
Ticks       : 636749981203464381
TimeOfDay   : @{Ticks=125203464381; Days=0; Hours=3; Milliseconds=346; Minutes=28; Seconds=40;
              TotalDays=0.14491141710763888; TotalHours=3.4778740105833332; TotalMilliseconds=12520346.4381;
              TotalMinutes=208.67244063500002; TotalSeconds=12520.3464381}
Year        : 2018

この例では、 ConvertTo-Json コマンドレットと ConvertFrom-Json コマンドレットを使用して、オブジェクトを JSON 文字列と JSON オブジェクトに変換する方法を示します。

パラメーター

-Compress

出力文字列の空白とインデントされた書式を省略します。

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Depth

JSON 表現に含まれるオブジェクトのレベル数を指定します。 既定値は 2 です。

型:Int32
配置:Named
規定値:2
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-InputObject

JSON 形式に変換するオブジェクトを指定します。 オブジェクトを含む変数を入力するか、オブジェクトを取得するコマンドまたは式を入力します。 オブジェクトを ConvertTo-Json にパイプ処理することもできます。

InputObject パラメーターが必要ですが、その値は null ($null) または空の文字列にすることができます。 入力オブジェクトが $nullの場合、 ConvertTo-Json は出力を生成しません。 入力オブジェクトが空の文字列の場合、 ConvertTo-Json は空の文字列を返します。

型:Object
配置:0
規定値:None
必須:True
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

入力

Object

任意のオブジェクトを ConvertTo-Json にパイプ処理できます。

出力

String

メモ