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-Json
kullanmanı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
100
herhangi 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-Json
de 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 null
dö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
Herhangi bir nesneyi bu cmdlet'e yöneltebilirsiniz.
Çıkışlar
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.
İlişkili Bağlantılar
PowerShell