ConvertTo-Json (Microsoft.PowerShell.Utility)
ConvertTo-Json
- Modül:
- Microsoft.PowerShell.Utility
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>]Tanım
ConvertTo-Json cmdlet'i herhangi bir .NET nesnesini JavaScript Nesne Gösterimi (JSON) biçimindeki 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'den itibaren, DateTime ve String nesnelerinin Genişletilmiş Tür Sistemi özellikleri artık serileştirilmemektedir ve yalnızca basit nesne JSON biçimine dönüştürülmektedir.
Daha sonra, JSON biçimli bir dizeyi PowerShell'de kolayca yönetilen bir JSON nesnesine dönüştürmek için ConvertFrom-Json cmdlet'ini kullanabilirsiniz.
Birçok web sitesi, sunucular ve web tabanlı uygulamalar arasındaki iletişim için verileri serileştirmek amacıyla 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 tanıtıldı.
Ö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, bir GregorianCalendar nesnesini JSON biçimli bir dizeye dönüştürmek için ConvertTo-Json cmdlet'ini kullanır.
Ö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 örnek, AsArray anahtar parametresi olan ve olmayan ConvertTo-Json cmdlet'inin çıktısını gösterir. Çıktının ikinci kısmının dizi parantezleri içine sarıldığını görebilirsiniz.
Örnek 3
@{Account="User01";Domain="Domain01";Admin="True"} | ConvertTo-Json -Compress
{"Domain":"Domain01","Account":"User01","Admin":"True"}Bu komut, ConvertTo-Json'un Compress parametresini kullanmanın etkisini gösterir. Sıkıştırma dizenin geçerliliğini değil yalnızca 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, bir System.DateTime nesnesini Get-Date cmdlet'inden JSON biçimli bir dizeye dönüştürmek için ConvertTo-Json cmdlet'ini kullanır. Komut, DateTime nesnesinin tüm (*) özelliklerini almak için Select-Object cmdlet'ini kullanır. Çıktı, ConvertTo-Json'un döndürdüğü JSON dizesini 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 : 2018Bu örnek, bir nesneyi bir JSON dizesine ve bir JSON nesnesine dönüştürmek için ConvertTo-Json ve ConvertFrom-Json cmdlet'lerinin nasıl kullanılacağını gösterir.
Parametreler
-AsArray
Giriş tek bir nesne olsa bile nesneyi dizi parantezleri içinde çıkarır.
- Tip :
SwitchParameter
- Konum:
-
Adlandırılmış
- Varsayılan değer:
None
- Gerekli:
False
- Boru hattı girişini kabul edin:
False
- Joker karakterleri kabul et:
False
-Compress
Çıkış dizesindeki beyaz boşlukları ve girintili biçimlendirmeyi atlar.
- Tip :
SwitchParameter
- Konum:
Adlandırılmış
- Varsayılan değer:
None
- Gerekli:
False
- Boru hattı girişini kabul edin:
-
False
- Joker karakterleri kabul et:
False
-Depth
JSON temsiline kaç düzeyde içerilen nesnenin dahil edildiğini belirtir. Değer, 0 ile 100 arasında herhangi bir sayı olabilir. Varsayılan değer 2'dir. ConvertTo-Json, bir giriş nesnesindeki düzey sayısı bu sayıyı aşarsa bir uyarı verir.
- Tip :
Int32
- Konum:
Adlandırılmış
- Varsayılan değer:
2
- Gerekli:
False
- Boru hattı girişini kabul edin:
False
- Joker karakterleri kabul et:
False
-EnumsAsStrings
Tüm numaralandırmaları dize temsillerine dönüştüren alternatif bir serileştirme seçeneği sağlar.
- Tip :
SwitchParameter
- Konum:
Adlandırılmış
- Varsayılan değer:
None
- Gerekli:
False
- Boru hattı girişini kabul edin:
False
- Joker karakterleri kabul et:
False
-EscapeHandling
Ortaya çıkan JSON çıktısında belirli karakterlerin nasıl atlandığını kontrol eder. Varsayılan olarak yalnızca kontrol karakterlerinin (satırsonu karakteri gibi) çıkışı yapılır.
Kabul edilebilir değerler şunlardır:
- Varsayılan - Yalnızca kontrol karakterlerinden çıkış yapılır.
- EscapeNonAscii - Tüm ASCII olmayan ve kontrol karakterlerinden çıkış yapılır.
- EscapeHtml - HTML (
<,>,&,',") ve kontrol karakterlerinden kaçılır.
Bu parametre PowerShell 6.2'de tanıtıldı.
- Tip :
Newtonsoft.Json.StringEscapeHandling
- Konum:
Adlandırılmış
- Varsayılan değer:
Varsayılan
- Gerekli:
False
- Boru hattı girişini kabul edin:
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. Ayrıca bir nesneyi ConvertTo-Json'a yönlendirebilirsiniz.
InputObject parametresi gereklidir ancak değeri null ($null) veya boş bir dize olabilir. Giriş nesnesi $null olduğunda, ConvertTo-Json, null'un JSON temsilini döndürür. Giriş nesnesi boş bir dize olduğunda, ConvertTo-Json boş bir dizenin JSON temsilini döndürür.
- Tip :
Nesne
- Konum:
0
- Varsayılan değer:
None
- Gerekli:
True
- Boru hattı girişini kabul edin:
True
- Joker karakterleri kabul et:
False
Girişler
Nesne
Bu cmdlet'e herhangi bir nesneyi aktarabilirsiniz.
Çıkışlar
Dize
Bu cmdlet, bir JSON dizesine dönüştürülmüş giriş nesnesini temsil eden bir dize döndürür.
Notlar
ConvertTo-Json cmdlet'i Newtonsoft Json.NET kullanılarak uygulanır.