ConvertTo-Json
Mengonversi objek menjadi string berformat JSON.
Sintaks
ConvertTo-Json
[-InputObject] <Object>
[-Depth <Int32>]
[-Compress]
[-EnumsAsStrings]
[-AsArray]
[-EscapeHandling <StringEscapeHandling>]
[<CommonParameters>]
Deskripsi
ConvertTo-Json
Cmdlet mengonversi objek .NET apa pun menjadi string dalam format JavaScript Object Notation (JSON). Properti dikonversi ke nama bidang, nilai bidang dikonversi ke nilai properti, dan metode dihapus.
Catatan
Pada PowerShell 7.2, properti Extended Type System dari objek DateTime dan String tidak lagi diserialisasikan dan hanya objek sederhana yang dikonversi ke format JSON
Anda kemudian dapat menggunakan ConvertFrom-Json
cmdlet untuk mengonversi string berformat JSON ke objek JSON, yang mudah dikelola di PowerShell.
Banyak situs web menggunakan JSON alih-alih XML untuk menserialisasikan data untuk komunikasi antara server dan aplikasi berbasis web.
Pada PowerShell 7.1, ConvertTo-Json
memancarkan peringatan jika kedalaman objek input melebihi kedalaman yang ditentukan untuk perintah. Ini mencegah kehilangan data yang tidak diinginkan saat mengonversi objek.
Cmdlet ini diperkenalkan di Windows PowerShell 3.0.
Contoh
Contoh 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
}
Perintah ini menggunakan ConvertTo-Json
cmdlet untuk mengonversi objek GregorianCalendar ke string berformat JSON.
Contoh 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"
]
Contoh ini menunjukkan output dari ConvertTo-Json
cmdlet dengan dan tanpa parameter sakelar AsArray . Anda dapat melihat bagian kedua dari output dibungkus dalam tanda kurung array.
Contoh 3
@{Account="User01";Domain="Domain01";Admin="True"} | ConvertTo-Json -Compress
{"Domain":"Domain01","Account":"User01","Admin":"True"}
Perintah ini menunjukkan efek menggunakan parameter Kompres dari ConvertTo-Json
. Pemadatan hanya memengaruhi tampilan string, bukan validitasnya.
Contoh 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
}
Contoh ini menggunakan ConvertTo-Json
cmdlet untuk mengonversi objek System.DateTime dari Get-Date
cmdlet ke string berformat JSON. Perintah menggunakan Select-Object
cmdlet untuk mendapatkan semua (*
) properti objek DateTime . Output menunjukkan string JSON yang ConvertTo-Json
dikembalikan.
Contoh 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
Contoh ini menunjukkan cara menggunakan ConvertTo-Json
cmdlet dan ConvertFrom-Json
untuk mengonversi objek ke string JSON dan objek JSON.
Parameter
-AsArray
Menghasilkan objek dalam tanda kurung array, bahkan jika input adalah objek tunggal.
Jenis: | SwitchParameter |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-Compress
Menghilangkan spasi kosong dan pemformatan yang diindentasi dalam string output.
Jenis: | SwitchParameter |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-Depth
Menentukan berapa banyak tingkat objek yang terkandung yang disertakan dalam representasi JSON. Nilainya bisa berupa angka apa pun dari 0
ke 100
. Nilai defaultnya adalah 2
. ConvertTo-Json
memancarkan peringatan jika jumlah tingkat dalam objek input melebihi angka ini.
Jenis: | Int32 |
Position: | Named |
Nilai default: | 2 |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-EnumsAsStrings
Menyediakan opsi serialisasi alternatif yang mengonversi semua enumerasi ke representasi string mereka.
Jenis: | SwitchParameter |
Position: | Named |
Nilai default: | None |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-EscapeHandling
Mengontrol bagaimana karakter tertentu lolos dalam output JSON yang dihasilkan. Secara default, hanya karakter kontrol (seperti baris baru) yang lolos.
Nilai yang dapat diterima adalah:
- Default - Hanya karakter kontrol yang lolos.
- EscapeNonAscii - Semua karakter non-ASCII dan kontrol diloloskan.
- EscapeHtml - HTML (
<
, ,>
,'
&
,"
) dan karakter kontrol diloloskan.
Parameter ini diperkenalkan di PowerShell 6.2.
Jenis: | Newtonsoft.Json.StringEscapeHandling |
Position: | Named |
Nilai default: | Default |
Diperlukan: | False |
Terima input alur: | False |
Terima karakter wildcard: | False |
-InputObject
Menentukan objek yang akan dikonversi ke format JSON. Masukkan variabel yang berisi objek, atau ketik perintah atau ekspresi yang mendapatkan objek. Anda juga dapat menyalurkan objek ke ConvertTo-Json
.
Parameter InputObject diperlukan, tetapi nilainya bisa null ($null
) atau string kosong.
Ketika objek input adalah $null
, ConvertTo-Json
mengembalikan representasi JSON dari null
. Saat objek input adalah string kosong, ConvertTo-Json
mengembalikan representasi JSON dari string kosong.
Jenis: | Object |
Position: | 0 |
Nilai default: | None |
Diperlukan: | True |
Terima input alur: | True |
Terima karakter wildcard: | False |
Input
Anda dapat menyalurkan objek apa pun ke cmdlet ini.
Output
Cmdlet ini mengembalikan string yang mewakili objek input yang dikonversi ke string JSON.
Catatan
ConvertTo-Json
Cmdlet diimplementasikan menggunakan Newtonsoft Json.NET.