ConvertFrom-Json

Mengonversi string berformat JSON menjadi objek kustom.

Sintaks

Default (Default)

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

Deskripsi

Cmdlet ConvertFrom-Json mengonversi string berformat JavaScript Object Notation (JSON) menjadi PSObject kustom atau objek Hashtable yang memiliki properti untuk setiap bidang dalam string JSON. JSON umumnya digunakan oleh situs web untuk memberikan representasi tekstual objek. Cmdlet menambahkan properti ke objek baru saat memproses setiap baris string JSON.

Standar JSON memungkinkan nama kunci duplikat, yang dilarang dalam tipe PSObject dan Hashtable. Misalnya, jika string JSON berisi kunci duplikat, hanya kunci terakhir yang digunakan oleh cmdlet ini. Lihat contoh lain di bawah ini.

Untuk menghasilkan string JSON dari objek apa pun, gunakan cmdlet ConvertTo-Json.

Cmdlet ini diperkenalkan di PowerShell 3.0.

Nota

Di Windows PowerShell 5.1, ConvertFrom-Json mengembalikan kesalahan saat mengalami komentar JSON. Di PowerShell 6 dan yang lebih tinggi, cmdlet mendukung JSON dengan komentar. Komentar JSON tidak tercakup dalam keluaran objek dari cmdlet. Untuk informasi selengkapnya, lihat bagian komentar JSON dari artikel about_Comments.

Contoh

Contoh 1: Mengonversi objek DateTime ke objek JSON

Perintah ini menggunakan cmdlet ConvertTo-Json dan ConvertFrom-Json untuk mengonversi objek DateTime dari cmdlet Get-Date ke objek JSON lalu ke 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

Contoh menggunakan cmdlet Select-Object untuk mendapatkan semua properti objek DateTime. Ini menggunakan cmdlet ConvertTo-Json untuk mengonversi objek DateTime ke string yang diformat sebagai objek JSON dan cmdlet ConvertFrom-Json untuk mengonversi string berformat JSON menjadi objek PSCustomObject.

Contoh 2: Mendapatkan string JSON dari layanan web dan mengonversinya ke objek PowerShell

Perintah ini menggunakan cmdlet Invoke-WebRequest untuk mendapatkan string JSON dari layanan web dan kemudian menggunakan cmdlet ConvertFrom-Json untuk mengonversi konten JSON ke objek yang dapat dikelola di PowerShell.

# 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

Anda juga dapat menggunakan cmdlet Invoke-RestMethod, yang secara otomatis mengonversi konten JSON menjadi objek.

Contoh 3: Mengonversi string JSON menjadi objek kustom

Contoh ini menunjukkan cara menggunakan cmdlet ConvertFrom-Json untuk mengonversi file JSON ke objek kustom PowerShell.

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

Perintah menggunakan cmdlet Get-Content untuk mendapatkan string dalam file JSON. Parameter Raw mengembalikan seluruh file sebagai objek JSON tunggal. Kemudian menggunakan operator alur untuk mengirim string yang dibatasi ke cmdlet ConvertFrom-Json, yang mengonversinya menjadi objek kustom.

Parameter

-InputObject

Menentukan string JSON untuk dikonversi ke objek JSON. Masukkan variabel yang berisi string, atau ketik perintah atau ekspresi yang mendapatkan string. Anda juga dapat menyalurkan string ke ConvertFrom-Json.

Parameter InputObject diperlukan, tetapi nilainya bisa menjadi string kosong. Ketika objek input adalah string kosong, ConvertFrom-Json tidak menghasilkan output apa pun. Nilai InputObject tidak dapat diubah $null.

Properti parameter

Jenis:String
Nilai default:None
Mendukung wildcard:False
DontShow:False

Kumpulan parameter

(All)
Position:0
Wajib:True
Nilai dari alur:True
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

CommonParameters

Cmdlet ini mendukung parameter umum: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction, dan -WarningVariable. Untuk informasi selengkapnya, lihat about_CommonParameters.

Input

String

Anda dapat menyalurkan string JSON ke ConvertFrom-Json.

Output

PSCustomObject

Catatan

Cmdlet ConvertFrom-Json diimplementasikan menggunakan kelas JavaScriptSerializer.

Jenis PSObject mempertahankan urutan properti seperti yang disajikan dalam string JSON. Meskipun pasangan kunci-nilai ditambahkan ke Hashtable dalam urutan yang ditampilkan dalam string JSON, Hashtable tidak mempertahankan urutan tersebut.