ConvertTo-Json

Bir nesneyi JSON biçimli bir dizeye dönüştürür.

Sözdizimi

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

Description

Cmdlet herhangi ConvertTo-Json bir .NET nesnesini JavaScript Nesne Gösterimi (JSON) biçiminde bir dizeye dönüştürür. Özellikler alan adlarına dönüştürülür, alan değerleri özellik değerlerine dönüştürülür ve yöntemler kaldırılır.

Not

PowerShell 7.2 itibarıyla, DateTime ve String nesnelerinin Genişletilmiş Tür Sistemi özellikleri artık serileştirilmemiştir ve yalnızca basit nesne JSON biçimine dönüştürülür

Ardından cmdlet'ini ConvertFrom-Json kullanarak JSON biçimli bir dizeyi PowerShell'de kolayca yönetilen bir JSON nesnesine dönüştürebilirsiniz.

Birçok web sitesi, sunucular ve web tabanlı uygulamalar arasındaki iletişim için verileri seri hale getirmek için XML yerine JSON kullanır.

PowerShell 7.1'den itibaren, ConvertTo-Json giriş nesnesinin derinliği komut için belirtilen derinliği aşarsa bir uyarı verir. Bu, nesneleri dönüştürürken istenmeyen veri kaybını önler.

Bu cmdlet, Windows PowerShell 3.0'da kullanıma sunulmuştur.

Örnekler

Örnek 1

(Get-UICulture).Calendar | ConvertTo-Json

{
  "MinSupportedDateTime": "0001-01-01T00:00:00",
  "MaxSupportedDateTime": "9999-12-31T23:59:59.9999999",
  "AlgorithmType": 1,
  "CalendarType": 1,
  "Eras": [
    1
  ],
  "TwoDigitYearMax": 2029,
  "IsReadOnly": true
}

Bu komut, GregorianCalendar nesnesini JSON biçimli bir dizeye dönüştürmek için cmdlet'ini kullanır ConvertTo-Json .

Örnek 2

Get-Date | ConvertTo-Json; Get-Date | ConvertTo-Json -AsArray

"2021-08-05T16:13:05.6394416-07:00"
[
  "2021-08-05T16:13:05.6421709-07:00"
]

Bu örnekte, AsArray anahtar parametresiyle ve parametresi olmadan cmdlet'in ConvertTo-Json çıktısı gösterilir. Çıkışın ikinci bölümünün dizi köşeli ayraçlarında sarmalanmış olduğunu görebilirsiniz.

Örnek 3

@{Account="User01";Domain="Domain01";Admin="True"} | ConvertTo-Json -Compress

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

Bu komut, komutunun Compress parametresini ConvertTo-Jsonkullanmanın etkisini gösterir. Sıkıştırma, geçerliliğini değil yalnızca dizenin görünümünü etkiler.

Örnek 4

Get-Date | Select-Object -Property * | ConvertTo-Json

{
  "DisplayHint": 2,
  "DateTime": "October 12, 2018 10:55:32 PM",
  "Date": "2018-10-12T00:00:00-05:00",
  "Day": 12,
  "DayOfWeek": 5,
  "DayOfYear": 285,
  "Hour": 22,
  "Kind": 2,
  "Millisecond": 639,
  "Minute": 55,
  "Month": 10,
  "Second": 32,
  "Ticks": 636749817326397744,
  "TimeOfDay": {
    "Ticks": 825326397744,
    "Days": 0,
    "Hours": 22,
    "Milliseconds": 639,
    "Minutes": 55,
    "Seconds": 32,
    "TotalDays": 0.95523888627777775,
    "TotalHours": 22.925733270666665,
    "TotalMilliseconds": 82532639.774400011,
    "TotalMinutes": 1375.54399624,
    "TotalSeconds": 82532.6397744
  },
  "Year": 2018
}

Bu örnek, cmdlet'inden ConvertTo-Json Get-Date bir System.DateTime nesnesini JSON biçimli bir dizeye dönüştürmek için cmdlet'ini kullanır. komutu, DateTime nesnesinin Select-Object özelliklerinin tümünü (*) almak için cmdlet'ini kullanır. Çıkış, döndürülen JSON dizesini ConvertTo-Json gösterir.

Örnek 5

Get-Date | Select-Object -Property * | ConvertTo-Json | ConvertFrom-Json

DisplayHint : 2
DateTime    : October 12, 2018 10:55:52 PM
Date        : 2018-10-12 12:00:00 AM
Day         : 12
DayOfWeek   : 5
DayOfYear   : 285
Hour        : 22
Kind        : 2
Millisecond : 768
Minute      : 55
Month       : 10
Second      : 52
Ticks       : 636749817527683372
TimeOfDay   : @{Ticks=825527683372; Days=0; Hours=22; Milliseconds=768; Minutes=55; Seconds=52;
              TotalDays=0.95547185575463; TotalHours=22.9313245381111; TotalMilliseconds=82552768.3372;
              TotalMinutes=1375.87947228667; TotalSeconds=82552.7683372}
Year        : 2018

Bu örnekte ve ConvertFrom-Json cmdlet'lerini kullanarak ConvertTo-Json bir nesneyi JSON dizesine ve JSON nesnesine dönüştürme işlemi gösterilmektedir.

Parametreler

-AsArray

Giriş tek bir nesne olsa bile nesneyi dizi köşeli ayraçlarında verir.

Tür:SwitchParameter
Position:Named
Default value:None
Gerekli:False
İşlem hattı girişini kabul et:False
Joker karakterleri kabul et:False

-Compress

Çıkış dizesinde boşluk ve girintili biçimlendirmeyi atlar.

Tür:SwitchParameter
Position:Named
Default value:None
Gerekli:False
İşlem hattı girişini kabul et:False
Joker karakterleri kabul et:False

-Depth

JSON gösterimine kaç kapsanan nesne düzeyi eklendiğini belirtir. değeri ile olan 0 100herhangi bir sayı olabilir. Varsayılan değer şudur: 2. ConvertTo-Json bir giriş nesnesindeki düzey sayısı bu sayıyı aşarsa bir uyarı verir.

Tür:Int32
Position:Named
Default value:2
Gerekli:False
İşlem hattı girişini kabul et:False
Joker karakterleri kabul et:False

-EnumsAsStrings

Tüm numaralandırmaları dize gösterimine dönüştüren alternatif bir serileştirme seçeneği sağlar.

Tür:SwitchParameter
Position:Named
Default value:None
Gerekli:False
İşlem hattı girişini kabul et:False
Joker karakterleri kabul et:False

-EscapeHandling

Elde edilen JSON çıkışında belirli karakterlerin nasıl kaçıldığını denetler. Varsayılan olarak, yalnızca denetim karakterlerinin (yeni satır gibi) kaçış karakteri vardır.

Kabul edilebilir değerler şunlardır:

  • Varsayılan - Yalnızca denetim karakterlerini kaçıştır.
  • EscapeNonAscii - ASCII olmayan ve denetim karakterlerinin tümü kaçış karakteridir.
  • EscapeHtml - HTML (<, >, &, ', ") ve denetim karakterlerinin kaçışı oluşturulur.

Bu parametre PowerShell 6.2'de kullanıma sunulmuştur.

Tür:Newtonsoft.Json.StringEscapeHandling
Position:Named
Default value:Default
Gerekli:False
İşlem hattı girişini kabul et:False
Joker karakterleri kabul et:False

-InputObject

JSON biçimine dönüştürülecek nesneleri belirtir. Nesneleri içeren bir değişken girin veya nesneleri alan bir komut veya ifade yazın. Bir nesneyi öğesine ConvertTo-Jsonde yöneltebilirsiniz.

InputObject parametresi gereklidir, ancak değeri null ($null) veya boş bir dize olabilir. Giriş nesnesi olduğunda $null, ConvertTo-Json JSON gösterimini nulldöndürür. Giriş nesnesi boş bir dize olduğunda, ConvertTo-Json boş bir dizenin JSON gösterimini döndürür.

Tür:Object
Position:0
Default value:None
Gerekli:True
İşlem hattı girişini kabul et:True
Joker karakterleri kabul et:False

Girişler

Object

Herhangi bir nesneyi bu cmdlet'e yöneltebilirsiniz.

Çıkışlar

String

Bu cmdlet, JSON dizesine dönüştürülen giriş nesnesini temsil eden bir dize döndürür.

Notlar

ConvertTo-Json Cmdlet, Newtonsoft Json.NET kullanılarak uygulanır.