Colle du PowerShell à gauche et clique sur "Convertir" — on le transforme en JSONColle du code PowerShell

Ce que fait cet outil

Si tu as déjà copié une hashtable @{...} depuis un script PowerShell en ayant besoin de l'équivalent JSON — sans ouvrir de shell et faire un pipe vers ConvertTo-Json — c'est exactement à ça que sert cet outil. Colle ton PowerShell, récupère du JSON propre. Ça marche pour une hashtable seule, une instance de [PSCustomObject] ou une chaîne entière de blocs @{} imbriqués avec des tableaux dedans.

La sortie correspond à ce que te donnerait ConvertTo-Json -Depth 100. Les hashtables et les [PSCustomObject] deviennent tous les deux des objets JSON. Les tableaux (@(1,2,3)) deviennent des tableaux JSON. $null devient null, $true/$false deviennent des booléens JSON. Les valeurs DateTime sont émises comme des chaînes ISO-8601, la même convention qu'utilise PowerShell 7.

Les clés qui contiennent des espaces ou des caractères spéciaux restent entre guillemets. Les littéraux numériques (42, 3.14) restent des nombres. Les chaînes entre apostrophes et guillemets sont toutes les deux correctement parsées et les séquences d'échappement entre guillemets (`n, `t) sont résolues. Si tu colles plusieurs affectations de niveau supérieur, chacune devient une clé dans le JSON de sortie, nommée d'après la variable.

Comment l'utiliser

Trois étapes. Ça marche pareil que tu colles une hashtable à deux clés ou un bloc de configuration complet.

1

Colle ton PowerShell (ou essaie l'exemple)

Balance ton bout de script dans l'éditeur de gauche. Une hashtable, un [PSCustomObject], des blocs @{} imbriqués ou un tableau d'objets — tout passe. Charger un exemple montre un cas réaliste de commande.

Pas besoin de nettoyer quoi que ce soit — laisse les préfixes $variable, les casts [PSCustomObject] et les commentaires exactement tels qu'ils sont.

2

Clique sur Convertir

Clique sur le bouton vert Convertir. L'outil parse la hashtable, parcourt chaque structure imbriquée et construit le JSON en une seule passe.

3

Copie le JSON

Le panneau de droite se remplit avec du JSON indenté. Colle-le dans un template ARM, un corps Invoke-RestMethod ou une fixture JSON pour un test Pester.

Quand ça sert vraiment

Construire des corps de requête d'API REST

Tu as une hashtable prête à envoyer via <code>Invoke-RestMethod</code> et tu veux vérifier la forme du JSON d'abord. Colle, inspecte, expédie.

Convertir des hashtables de config en fichiers JSON

Une équipe utilise des fichiers de config <code>.psd1</code>, mais un nouveau service attend du JSON. Colle la hashtable et sauve la sortie en <code>config.json</code>.

Fichiers de paramètres ARM / Bicep

Les paramètres de template ARM sont en JSON, mais on les construit souvent d'abord en hashtables PowerShell. Convertis une fois et commit le JSON.

Alimenter des outils en aval

Les scripts de CI en PowerShell doivent souvent passer des données structurées à Python, Node ou une commande de conteneur qui attend du JSON sur stdin. C'est ce passage de relais.

Questions fréquentes

Est-ce que ça correspond à la sortie de ConvertTo-Json ?

Oui — le but c'est la parité avec ConvertTo-Json -Depth 100 -Compress:$false. Les hashtables et les objets [PSCustomObject] deviennent tous les deux des objets JSON ; les tableaux deviennent des tableaux JSON ; $null, $true, $false se mappent de la façon habituelle.

Et [PSCustomObject] par rapport à une hashtable simple ?

Les deux se convertissent vers le même objet JSON. [PSCustomObject] préserve l'ordre des propriétés, ce que cet outil respecte. Les hashtables simples sont triées alphabétiquement par défaut — comme ConvertTo-Json.

Je peux coller un script entier ?

Oui, mais seules les affectations de niveau supérieur $variable = @{...} et [PSCustomObject]@{...} sont incluses dans la sortie. Les définitions de fonctions, le contrôle de flux et les appels de cmdlets sont ignorés. Chaque variable de niveau supérieur devient une clé dans le JSON, nommée d'après la variable.

Comment sont gérées les dates et les nombres ?

Les sorties de [DateTime] et Get-Date sont émises comme des chaînes ISO-8601. Les littéraux numériques (y compris [decimal]) restent des nombres JSON. Les dates collées comme chaînes brutes restent des chaînes.

Mon code est-il stocké ?

Ton code est envoyé au backend pour la conversion et n'est pas persisté — on ne logge pas le payload. Si la hashtable contient des secrets, efface-les avant de coller.

Ça gère les here-strings et les chaînes multi-lignes ?

Oui. Les here-strings @"..."@ et @'...'@ sont préservés comme chaînes JSON avec l'encodage des retours à la ligne correct.

Autres outils qui peuvent te servir

PowerShell vers JSON va bien avec le reste de la boîte à outils :