ConvertTo-Json
Bir nesneyi JSON biçimli bir dizeye dönüştürür.
Sözdizimi
Default EnterprisePublishing
ConvertTo-Json
[-InputObject] <Object>
[-Depth <Int32>]
[-Compress]
[-EnumsAsStrings]
[-AsArray]
[-EscapeHandling <StringEscapeHandling>]
[<CommonParameters>]
Description
ConvertTo-Json cmdlet'i herhangi 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.
Uyarı
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
Daha sonra ConvertFrom-Json cmdlet'ini 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, giriş nesnesinin derinliği komut için belirtilen derinliği aşarsa ConvertTo-Json bir uyarı yayar. Bu, nesneleri dönüştürürken istenmeyen veri kaybını önler.
PowerShell 7.5-preview.3 sürümünden itibaren ConvertTo-Json BigInteger değerlerini ham JSON numaraları olarak seri hale.
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 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 örnekte, ConvertTo-Json anahtar parametresiyle ve parametresi olmadan cmdlet'in çıktısı gösterilmektedir. Çı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, ConvertTo-Json parametresini 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 örnekte, ConvertTo-Json nesnesini cmdlet'inden JSON biçimli bir dizeye dönüştürmek için Get-Date cmdlet'i kullanılır. Komut, Select-Object nesnesinin özelliklerinin tümünü (*) almak için cmdlet'ini kullanır. Çıkış, döndürülen ConvertTo-Json 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 : 2018
Bu örnekte, bir nesneyi JSON dizesine ve JSON nesnesine dönüştürmek için ConvertTo-Json ve ConvertFrom-Json cmdlet'lerinin nasıl kullanılacağı gösterilmektedir.
Parametreler
-AsArray
Giriş tek bir nesne olsa bile nesneyi dizi köşeli ayraçlarında verir.
Parametre özellikleri
| Tür: | SwitchParameter |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
(All)
| Position: | Named |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-Compress
Çıkış dizesinde boşluk ve girintili biçimlendirmeyi atlar.
Parametre özellikleri
| Tür: | SwitchParameter |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
(All)
| Position: | Named |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-Depth
JSON gösterimine kaç kapsanan nesne düzeyi eklendiğini belirtir. Değer, 0 ile 100herhangi bir sayı olabilir. Varsayılan değer şudur: 2.
ConvertTo-Json, giriş nesnesindeki düzey sayısı bu sayıyı aşarsa bir uyarı verir.
Parametre özellikleri
| Tür: | Int32 |
| Default value: | 2 |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
(All)
| Position: | Named |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-EnumsAsStrings
Tüm numaralandırmaları dize gösterimine dönüştüren alternatif bir serileştirme seçeneği sağlar.
Parametre özellikleri
| Tür: | SwitchParameter |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
(All)
| Position: | Named |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | 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 karakterleri kaçış karakteri.
Bu parametre PowerShell 6.2'de kullanıma sunulmuştur.
Parametre özellikleri
| Tür: | Newtonsoft.Json.StringEscapeHandling |
| Default value: | Default |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
(All)
| Position: | Named |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | 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 ConvertTo-Json'e de yöneltebilirsiniz.
InputObject parametresi gereklidir, ancak değeri null ($null) veya boş bir dize olabilir.
Giriş nesnesi $nullolduğunda ConvertTo-JsonnullJSON gösterimini döndürür. Giriş nesnesi boş bir dize olduğunda, ConvertTo-Json boş bir dizenin JSON gösterimini döndürür.
Parametre özellikleri
| Tür: | Object |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
(All)
| Position: | 0 |
| Zorunlu: | True |
| İşlem hattından gelen değer: | True |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
CommonParameters
Bu cmdlet yaygın parametreleri destekler: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction ve -WarningVariable. Daha fazla bilgi için bkz. about_CommonParameters.
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'i Newtonsoft Json.NETkullanılarak uygulanır.