Aracılığıyla paylaş


ConvertFrom-Json

JSON biçimli bir dizeyi özel bir nesneye dönüştürür.

Sözdizimi

ConvertFrom-Json
                [-InputObject] <String>
                [<CommonParameters>]

Description

Cmdlet, ConvertFrom-Json JavaScript Nesne Gösterimi (JSON) biçimli bir dizeyi, JSON dizesindeki her alan için bir özelliği olan özel bir PSObject veya Hashtable nesnesine dönüştürür. JSON, web siteleri tarafından nesnelerin metinsel gösterimini sağlamak için yaygın olarak kullanılır. Cmdlet, JSON dizesinin her satırını işlerken özellikleri yeni nesneye ekler.

JSON standardı, PSObject ve Hashtable türlerinde yasaklanan yinelenen anahtar adlara izin verir. Örneğin, JSON dizesi yinelenen anahtarlar içeriyorsa, bu cmdlet tarafından yalnızca son anahtar kullanılır. Aşağıdaki diğer örneklere bakın.

Herhangi bir nesneden JSON dizesi oluşturmak için cmdlet'ini ConvertTo-Json kullanın.

Bu cmdlet PowerShell 3.0'da kullanıma sunulmuştur.

Not

PowerShell 6'dan başlayarak, cmdlet açıklamaları olan JSON'ı destekler. JSON açıklamaları iki eğik çizgi (//) karakterle başlar. JSON açıklamaları, cmdlet'i tarafından nesne çıkışında yakalanmaz. PowerShell 6'nın öncesinde bir ConvertFrom-Json JSON açıklamasıyla karşılaştığında hata döndürür.

Örnekler

Örnek 1: DateTime nesnesini JSON nesnesine dönüştürme

Bu komut, ve ConvertFrom-Json cmdlet'lerini kullanarak ConvertTo-Json bir DateTime nesnesini cmdlet'inden Get-Date JSON nesnesine ve ardından PSCustomObject nesnesine dönüştürür.

Get-Date | Select-Object -Property * | ConvertTo-Json | ConvertFrom-Json

DisplayHint : 2
DateTime    : Friday, January 13, 2012 8:06:31 PM
Date        : 1/13/2012 8:00:00 AM
Day         : 13
DayOfWeek   : 5
DayOfYear   : 13
Hour        : 20
Kind        : 2
Millisecond : 400
Minute      : 6
Month       : 1
Second      : 31
Ticks       : 634620819914009002
TimeOfDay   : @{Ticks=723914009002; Days=0; Hours=20; Milliseconds=400; Minutes=6; Seconds=31; TotalDays=0.83786343634490734; TotalHours=20.108722472277776; TotalMilliseconds=72391400.900200009; TotalMinutes=1206.5233483366667;TotalSeconds=72391.4009002}
Year        : 2012

Örnek, DateTime nesnesinin Select-Object tüm özelliklerini almak için cmdlet'ini kullanır. DateTime nesnesini JSON nesnesi olarak biçimlendirilmiş bir dizeye dönüştürmek için cmdlet'ini ConvertFrom-Json ve JSON biçimli dizeyi PSCustomObject nesnesine dönüştürmek için cmdlet'ini kullanırConvertTo-Json.

Örnek 2: Web hizmetinden JSON dizeleri alma ve bunları PowerShell nesnelerine dönüştürme

Bu komut, bir web hizmetinden Invoke-WebRequest JSON dizelerini almak için cmdlet'ini ConvertFrom-Json kullanır ve ardından JSON içeriğini PowerShell'de yönetilebilen nesnelere dönüştürmek için cmdlet'ini kullanır.

# Ensures that Invoke-WebRequest uses TLS 1.2
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$j = Invoke-WebRequest 'https://api.github.com/repos/PowerShell/PowerShell/issues' | ConvertFrom-Json

JSON içeriğini otomatik olarak nesnelere dönüştüren cmdlet'ini de kullanabilirsiniz Invoke-RestMethod .

Örnek 3: JSON dizesini özel nesneye dönüştürme

Bu örnekte, bir JSON dosyasını PowerShell özel nesnesine dönüştürmek için cmdlet'in nasıl kullanılacağı ConvertFrom-Json gösterilmektedir.

Get-Content -Raw JsonFile.JSON | ConvertFrom-Json

Komut, dizeleri bir JSON dosyasına almak için Get-Content cmdlet'ini kullanır. Raw parametresi, dosyanın tamamını tek bir JSON nesnesi olarak döndürür. Ardından, sınırlandırılmış dizeyi cmdlet'ine göndermek için ConvertFrom-Json işlem hattı işlecini kullanır ve bu da bunu özel bir nesneye dönüştürür.

Parametreler

-InputObject

JSON nesnelerine dönüştürülecek JSON dizelerini belirtir. Dizeyi içeren bir değişken girin veya dizeyi alan bir komut veya ifade yazın. Ayrıca bir dizeyi öğesine de yöneltebilirsiniz ConvertFrom-Json.

InputObject parametresi gereklidir, ancak değeri boş bir dize olabilir. Giriş nesnesi boş bir dize olduğunda, ConvertFrom-Json herhangi bir çıkış oluşturmaz. InputObject değeri olamaz$null.

Tür:String
Position:0
Default value:None
Gerekli:True
İşlem hattı girişini kabul et:True
Joker karakterleri kabul et:False

Girişler

String

JSON dizesini adresine yöneltebilirsiniz ConvertFrom-Json.

Çıkışlar

PSCustomObject

Notlar

ConvertFrom-Json cmdlet'i JavaScriptSerializer sınıfı kullanılarak uygulanır.

PSObject türü, JSON dizesinde gösterildiği gibi özelliklerin sırasını korur. Anahtar-değer çiftleri Hashtable'a JSON dizesinde sunulan sırayla eklenirken, Hashtable nesneleri bu sırayı korumaz.