2016-06-01 42 views
7

Stavo cercando di eseguire uno script che recupera il file JSON dall'endpoint CMS, passarlo sulla pipeline a convertfrom-json. Tuttavia, viene visualizzato un errore che indica la primitiva JSON non valida.ConvertFrom-Json: primitiva JSON non valida:

ConvertFrom-Json: primitiva JSON non valida:. in 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

Struttura del mio file JSON dei parametri era in linea a come Azure Param struttura del file eter ha bisogno di essere e il campione è il seguente: -

{ 
"$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"}, 
     } 
} 

Nota: Lo scopo di questo post è quello di condividere alcune cose emerse durante Azure progetto PoC, e spero di servire qualcuno in seguito.

risposta

12

Approccio 1: -raw condotta usando -raw con Get-Content affinché Get-Content invece di leggere ciascuna riga separatamente e memorizzazione come matrice, crea oggetto.

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

Approccio 2: Out-String Tentativo con Get-Content convogliato a | Out-String come di seguito:

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

recensione JSON con IDE Infine, mi ricordai la notifica IDE, quando avevo aperto la copia salvata del CMS generato JSON. Si aspettava un EOF, ma se si nota la struttura JSON sopra riportata, ha ottenuto un "," che causava questo problema.

Ho provato di nuovo l'esecuzione sia -Raw che Out-String, e funzionava come previsto.