Bagikan melalui


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 diperlukan, tetapi nilainya bisa null () atau string kosong. Ketika objek input $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.