2016-06-01 14 views
7

Próbowałem uruchomić skrypt, który pobiera plik JSON z punktu końcowego CMS, przekazując go do potoku do convertfrom-json. Ale pojawia się błąd z informacją o niepoprawnym prymitywie JSON.ConvertFrom-Json: Niepoprawny prymityw JSON:

ConvertFrom-Json: Niepoprawny prymityw JSON:. w D: \ AzureProject \ SetupusingParameterfile.ps1 13 Znak: 75

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

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

Struktura mój plik JSON parametr inline do how Azure Param Struktura plików eter musi być i próbka jest jak poniżej: -

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

Uwaga: Celem tego postu jest dzielenie się kilka rzeczy, które pojawiły się podczas Azure projektu PoC, i nadziei, aby służyć, kogo później.

Odpowiedz

12

Podejście 1: -Surowe Próba korzystania -Surowe z Get-Content, tak aby Get-Content zamiast czytać każdą linię osobno i przechowywania jako tablicy, tworzy obiekt.

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

Podejście 2: Out-String Próba z Get-Content rurami do | Out-String jak poniżej:

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

Przegląd JSON z IDE Wreszcie przypomniał powiadomienia IDE, kiedy otworzyły się zapisaną kopię CMS generowane JSON. Miał oczekiwany EOF, ale jeśli zauważysz powyższą strukturę JSON, dostał "," który spowodował ten problem.

Próbowałem ponownie wykonać funkcję -Raw i Out-String, która działała zgodnie z oczekiwaniami.