Aracılığıyla paylaş


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-Jsonkullanmanı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-JsonGet-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 1100herhangi 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-Jsonde 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 nulldö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

Object

Herhangi bir nesneyi öğesine kanal oluşturabilirsiniz ConvertTo-Json.

Çıkışlar

String

Notlar

ConvertTo-Json Cmdlet, Newtonsoft Json.NET kullanılarak uygulanır.