ConvertFrom-Json

Převede řetězec ve formátu JSON na vlastní objekt.

Syntax

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

Description

Rutina ConvertFrom-Json převede řetězec ve formátu JSON (JavaScript Object Notation) na vlastní objekt PSObject nebo Hashtable , který má vlastnost pro každé pole v řetězci JSON. JSON se běžně používá na webových webech k poskytnutí textové reprezentace objektů. Rutina přidá vlastnosti do nového objektu, protože zpracovává každý řádek řetězce JSON.

Standard JSON umožňuje duplicitní názvy klíčů, které jsou zakázány v typech PSObject a Hashtable . Pokud například řetězec JSON obsahuje duplicitní klíče, použije tato rutina pouze poslední klíč. Podívejte se na další příklady níže.

K vygenerování řetězce JSON z libovolného objektu použijte rutinu ConvertTo-Json .

Tato rutina byla představena v PowerShellu 3.0.

Poznámka:

Počínaje PowerShellem 6 podporuje rutina JSON s komentáři. Komentáře JSON začínají dvěma lomítky (//) znaky. Komentáře JSON nejsou zachyceny ve výstupu objektů rutinou. Před PowerShellem 6 ConvertFrom-Json by se při výskytu komentáře JSON vrátila chyba.

Příklady

Příklad 1: Převod objektu DateTime na objekt JSON

Tento příkaz používá ConvertTo-Json a ConvertFrom-Json rutiny k převodu objektu DateTime z Get-Date rutiny na objekt JSON pak na PSCustomObject.

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

Příklad používá rutinu Select-Object k získání všech vlastností objektu DateTime . Pomocí rutiny ConvertTo-Json převede objekt DateTime na řetězec formátovaný jako objekt JSON a rutina ConvertFrom-Json převede řetězec ve formátu JSON na objekt PSCustomObject .

Příklad 2: Získání řetězců JSON z webové služby a jejich převod na objekty PowerShellu

Tento příkaz pomocí rutiny Invoke-WebRequest získá řetězce JSON z webové služby a pak pomocí ConvertFrom-Json této rutiny převede obsah JSON na objekty, které je možné spravovat v PowerShellu.

# 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

Můžete také použít rutinu Invoke-RestMethod , která automaticky převede obsah JSON na objekty.

Příklad 3: Převod řetězce JSON na vlastní objekt

Tento příklad ukazuje, jak pomocí rutiny ConvertFrom-Json převést soubor JSON na vlastní objekt PowerShellu.

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

Příkaz používá rutinu Get-Content k získání řetězců v souboru JSON. Nezpracovaný parametr vrátí celý soubor jako jeden objekt JSON. Potom pomocí operátoru kanálu odešle řetězec s oddělovači do ConvertFrom-Json rutiny, která ho převede na vlastní objekt.

Parametry

-InputObject

Určuje řetězce JSON, které se mají převést na objekty JSON. Zadejte proměnnou, která obsahuje řetězec, nebo zadejte příkaz nebo výraz, který řetězec získá. Řetězec můžete také převést na ConvertFrom-Json.

Parametr InputObject je povinný, ale jeho hodnota může být prázdný řetězec. Pokud je vstupním objektem prázdný řetězec, ConvertFrom-Json nevygeneruje žádný výstup. Hodnota InputObject nemůže být $null.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

Vstupy

String

Řetězec JSON můžete převést na ConvertFrom-Json.

Výstupy

PSCustomObject

Poznámky

Rutina ConvertFrom-Json se implementuje pomocí třídy JavaScriptSerializer.

Typ PSObject udržuje pořadí vlastností, jak je znázorněno v řetězci JSON. Zatímco páry klíč-hodnota se přidají do hashtable v pořadí uvedeném v řetězci JSON, objekty Hashtable toto pořadí neudržují.