ConvertTo-Json
Nesneyi JSON biçimli bir dizeye dönüştürür.
Syntax
ConvertTo-Json
[-InputObject] <Object>
[-Depth <Int32>]
[-Compress]
[-EnumsAsStrings]
[-AsArray]
[-EscapeHandling <StringEscapeHandling>]
[<CommonParameters>]
Description
cmdlet'i ConvertTo-Json
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.
Daha sonra 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ı yayar. 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, 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
{
"value": "2018-10-12T23:07:18.8450248-05:00",
"DisplayHint": 2,
"DateTime": "October 12, 2018 11:07:18 PM"
}
[
{
"value": "2018-10-12T23:07:18.8480668-05:00",
"DisplayHint": 2,
"DateTime": "October 12, 2018 11:07:18 PM"
}
]
Bu örnekte, AsArray anahtar parametresiyle ve parametresi olmadan cmdlet'in ConvertTo-Json
çıktısı gösterilmektedir. Çıkışın ikinci bölümünün dizi köşeli ayraçları içinde 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, bir nesneyi JSON dizesine ConvertTo-Json
ve JSON nesnesine dönüştürmek için 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ı halinde verir.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Compress
Çıkış dizesinde boşluk ve girintili biçimlendirmeyi atlar.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Depth
JSON gösterimine kaç kapsanan nesne düzeyi eklendiğini belirtir. değeri ile olan 1
100
herhangi bir sayı olabilir. 2
varsayılan değerdir. ConvertTo-Json
bir giriş nesnesindeki düzey sayısı bu sayıyı aşarsa bir uyarı yayar.
Type: | Int32 |
Position: | Named |
Default value: | 2 |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-EnumsAsStrings
Tüm numaralandırmaları dize gösterimine dönüştüren alternatif bir serileştirme seçeneği sağlar.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-EscapeHandling
Elde edilen JSON çıkışında belirli karakterlerin nasıl kaçıldığını denetler. Varsayılan olarak, yalnızca denetim karakterlerini (yeni satır gibi) kaçış karakteri kullanır.
Kabul edilebilir değerler şunlardır:
- Varsayılan - Yalnızca denetim karakterleri kaçış karakteridir.
- EscapeNonAscii - ASCII olmayan ve denetim karakterlerinin tümü kaçış karakteridir.
- EscapeHtml - HTML (
<
,>
,&
,'
,"
) ve denetim karakterleri kaçış karakteridir.
Bu parametre PowerShell 6.2'de kullanıma sunulmuştur.
Type: | Newtonsoft.Json.StringEscapeHandling |
Position: | Named |
Default value: | Default |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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 öğ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.
Type: | Object |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
Girişler
Herhangi bir nesneyi öğesine kanal oluşturabilirsiniz ConvertTo-Json
.
Çıkışlar
Notlar
ConvertTo-Json
Cmdlet, Newtonsoft Json.NET kullanılarak uygulanır.