web-dev-qa-db-fra.com

ConvertFrom-Json: primitive JSON non valide:

J'essayais d'exécuter un script qui récupère le fichier JSON du point de terminaison CMS, le transmettre au pipeline pour convertirfrom-json. Mais, j'obtiens une erreur disant primitive JSON invalide.

ConvertFrom-Json: primitive JSON non valide:. Dans D:\AzureProject\SetupusingParameterfile.ps1: 13 char: 75

 $JsonContent = Get-Content $TemplateParameterFileLocal -Raw | Conver ...

CategoryInfo: NotSpecified: (:) [ConvertFrom-Json], ArgumentException + FullyQualifiedErrorId: System.ArgumentException, Microsoft.PowerShell.Commands.ConvertFromJsonCommand

La structure de mon fichier de paramètres JSON était conforme à la façon dont la structure du fichier de paramètres Azure doit être et l'échantillon est le suivant: -

{
"$schema": "http://schema.management.Azure.com/schemas/20111-01-01/deploymentParameters.json#",
"contentVersion":"1.0.0.0",
"parameters": 
        {
            "hostingPlanName": {"value": "pilotHosting"},
            "hostingEnvironment": {"value": "pilotHostingenv"},   
            "serverFarmResourceGroup": {"value": "Pilot1H"},
            "sqlserverName": {"value": "pilotsrvrtrialrun11"},
            "administratorLogin": {"value": "sites1H"},
            "administratorLoginPassword": {"value": "abcdefg"},
            "serverName": {"value": "Pilotwebserver"},
            "databaseUsername": {"value": "pilot1Hattabc"},
            "databasePassword": {"value": "pilotdbabc1H"},
        }
}

Remarque: Le but de cet article est de partager quelques éléments qui sont survenus lors du projet Azure PoC, et espérons servir quelqu'un plus tard.

12
H Bala

Approche 1: -Raw Tentative d'utilisation de -Raw avec Get-Content pour que Get-Content au lieu de lire chaque ligne séparément et de les stocker sous forme de tableau, crée un objet.

 $JsonContent = Get-Content $TemplateParameterFileLocal -Raw | ConvertFrom-Json

Approche 2: Out-String Tentative avec Get-Content canalisé vers | Out-String comme ci-dessous:

$JsonContent = Get-Content $TemplateParameterFileLocal | Out-String | ConvertFrom-Json

Examiner JSON avec IDE Enfin, je me suis souvenu de la notification IDE lorsque j'ai ouvert la copie enregistrée du JSON généré par CMS. Il y avait un EOF attendu mais si vous remarquez la structure JSON ci-dessus, elle a obtenu un ',' qui causait ce problème.

J'ai essayé à nouveau l'exécution de -Raw et Out-String, et cela fonctionnait comme prévu.

19
H Bala