ConvertTo-Json
Mengonversi objek menjadi string berformat JSON.
Sintaks
Default (Default)
ConvertTo-Json
[-InputObject] <Object>
[-Depth <Int32>]
[-Compress]
[-EnumsAsStrings]
[-AsArray]
[-EscapeHandling <StringEscapeHandling>]
[<CommonParameters>]
Deskripsi
Cmdlet ConvertTo-Json 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.
Nota
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 cmdlet ConvertFrom-Json 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.
Pada PowerShell 7.5-preview.3, ConvertTo-Json dapat menserialisasikan nilai BigInteger sebagai angka JSON mentah.
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 cmdlet ConvertTo-Json 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 cmdlet ConvertTo-Json 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 penggunaan 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 cmdlet ConvertTo-Json untuk mengonversi objek System.DateTime dari cmdlet Get-Date menjadi string berformat JSON. Perintah menggunakan cmdlet Select-Object 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 cmdlet ConvertTo-Json 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.
Properti parameter
| Jenis: | SwitchParameter |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-Compress
Menghilangkan spasi kosong dan pemformatan yang diindentasi dalam string output.
Properti parameter
| Jenis: | SwitchParameter |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-Depth
Menentukan berapa banyak tingkat objek yang terkandung yang disertakan dalam representasi JSON. Nilainya bisa berupa angka apa pun dari 0 hingga 100. Nilai defaultnya adalah 2.
ConvertTo-Json memancarkan peringatan jika jumlah tingkat dalam objek input melebihi angka ini.
Properti parameter
| Jenis: | Int32 |
| Nilai default: | 2 |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-EnumsAsStrings
Menyediakan opsi serialisasi alternatif yang mengonversi semua enumerasi ke representasi string mereka.
Properti parameter
| Jenis: | SwitchParameter |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | 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.
Properti parameter
| Jenis: | Newtonsoft.Json.StringEscapeHandling |
| Nilai default: | Default |
| Mendukung wildcard: | False |
| DontShow: | False |
Kumpulan parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | 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 $null, ConvertTo-Json mengembalikan representasi JSON dari null. Saat objek input adalah string kosong, ConvertTo-Json mengembalikan representasi JSON dari string kosong.
Properti parameter
| Jenis: | Object |
| 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
Object
Anda dapat menyalurkan objek apa pun ke cmdlet ini.
Output
String
Cmdlet ini mengembalikan string yang mewakili objek input yang dikonversi ke string JSON.
Catatan
Cmdlet ConvertTo-Json diimplementasikan menggunakan Newtonsoft Json.NET.