Wklej PowerShell po lewej i kliknij "Konwertuj" — zamienimy to na JSONWklej kod PowerShell

Co robi to narzędzie

Jeśli kiedykolwiek skopiowałeś hashtable @{...} ze skryptu PowerShell i potrzebowałeś odpowiednika w JSON — bez odpalania shella i pipe'owania przez ConvertTo-Json — to narzędzie jest dokładnie do tego. Wklejasz PowerShell, dostajesz czysty JSON. Działa dla pojedynczego hashtable, instancji [PSCustomObject] albo całego łańcucha zagnieżdżonych bloków @{} z tablicami w środku.

Wyjście zgadza się z tym, co dałoby ConvertTo-Json -Depth 100. Hashtable i [PSCustomObject] stają się obiektami JSON. Tablice (@(1,2,3)) stają się tablicami JSON. $null to null, $true/$false to boolean-y JSON. Wartości DateTime wychodzą jako stringi ISO-8601 — ta sama konwencja, której używa PowerShell 7.

Klucze ze spacjami albo znakami specjalnymi zostają w cudzysłowach. Literały numeryczne (42, 3.14) zostają liczbami. Stringi w apostrofach i cudzysłowach parsują się poprawnie, a sekwencje escape w cudzysłowach (`n, `t) są rozwijane. Jeśli wkleisz kilka przypisań najwyższego poziomu, każde staje się kluczem w wyjściowym JSON, nazwanym po zmiennej.

Jak tego użyć

Trzy kroki. Działa tak samo, czy wklejasz hashtable z dwoma kluczami, czy cały blok konfiguracji.

1

Wklej swojego PowerShella (albo spróbuj przykładu)

Wrzuć kawałek skryptu do edytora po lewej. Hashtable, [PSCustomObject], zagnieżdżone @{} bloki albo tablica obiektów — wszystko w porządku. Wczytaj przykład pokazuje realistyczny przypadek zamówienia.

Nie musisz nic czyścić — zostaw prefiksy $variable, casty [PSCustomObject] i komentarze tak jak są.

2

Wciśnij Konwertuj

Kliknij zielony przycisk Konwertuj. Narzędzie parsuje hashtable, przechodzi po każdej zagnieżdżonej strukturze i buduje JSON w jednym przebiegu.

3

Skopiuj JSON

Prawy panel wypełnia się wciętym JSON-em. Wklej go do szablonu ARM, body Invoke-RestMethod albo fixture'a JSON do testu Pester.

Kiedy to naprawdę się przydaje

Budowanie body requestów REST API

Masz hashtable gotową do wysłania przez <code>Invoke-RestMethod</code> i chcesz najpierw sprawdzić kształt JSON-a. Wklej, zerknij, wyślij.

Konwersja config-owych hashtable do plików JSON

Zespół używa plików konfiguracyjnych <code>.psd1</code>, ale nowy serwis oczekuje JSON. Wklej hashtable i zapisz wynik jako <code>config.json</code>.

Pliki parametrów ARM / Bicep

Parametry szablonów ARM są w JSON, ale często budujesz je najpierw jako hashtable w PowerShellu. Skonwertuj raz i zacommituj JSON.

Karmienie narzędzi downstream

Skrypty CI w PowerShellu często muszą przekazać ustrukturyzowane dane do Pythona, Node'a albo komendy kontenera, która oczekuje JSON-a na stdin. Właśnie to przekazanie.

Częste pytania

Czy pasuje do wyjścia ConvertTo-Json?

Tak — celem jest parytet z ConvertTo-Json -Depth 100 -Compress:$false. Hashtable i obiekty [PSCustomObject] stają się obiektami JSON; tablice tablicami JSON; $null, $true, $false mapują się standardowo.

A co z [PSCustomObject] w porównaniu do zwykłego hashtable?

Oba konwertują się do tego samego obiektu JSON. [PSCustomObject] zachowuje kolejność właściwości, a narzędzie to respektuje. Zwykłe hashtable są domyślnie sortowane alfabetycznie — tak samo jak ConvertTo-Json.

Mogę wkleić cały skrypt?

Tak, ale do wyjścia trafiają tylko przypisania najwyższego poziomu $variable = @{...} i [PSCustomObject]@{...}. Definicje funkcji, control flow i wywołania cmdletów są ignorowane. Każda zmienna najwyższego poziomu staje się kluczem w JSON, nazwanym po zmiennej.

Jak są traktowane daty i liczby?

Wyjścia [DateTime] i Get-Date wychodzą jako stringi ISO-8601. Literały numeryczne (łącznie z [decimal]) zostają liczbami JSON. Daty wklejone jako surowe stringi zostają stringami.

Czy mój kod jest przechowywany?

Kod idzie do backendu do konwersji i nie jest persystowany — nie logujemy payloadu. Jeśli hashtable zawiera sekrety, wyczyść je przed wklejeniem.

Obsługuje here-stringi i wielolinijkowe wartości stringowe?

Tak. Here-stringi @"..."@ i @'...'@ są zachowywane jako stringi JSON z poprawnym kodowaniem newline'ów.

Inne narzędzia, które mogą ci się przydać

PowerShell do JSON dobrze gra z resztą zestawu: