Aracılığıyla paylaş


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.