2016-06-01 341 views
7

我試圖運行一個腳本,它從CMS端點獲取JSON文件,並將其傳遞給convertfrom-json。但是,我收到一個錯誤,說無效的JSON原語。ConvertFrom-Json:無效的JSON基元:

ConvertFrom-Json:無效的JSON原語:。 在d:\ AzureProject \ SetupusingParameterfile.ps1:13字符:75

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

CategoryInfo:NotSpecified:(:) [ConvertFrom JSON的],ArgumentException的 + FullyQualifiedErrorId信息:System.ArgumentException,微軟。 PowerShell.Commands.ConvertFromJsonCommand我的JSON參數文件的

結構直列天青如何帕拉姆ETER文件結構需要和樣品如下: -

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

注:這篇文章的目的是爲了分享Azure項目的PoC過程中來了,希望以後成爲別人幾件事情。

回答

12

方法1:-raw 使用-raw與獲取內容,以便獲取內容,而不是單獨地讀取每一行,並存儲爲陣列,創建對象嘗試。

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

方法2:輸出字符串 與獲取內容試圖通過管道輸送到|輸出字符串如下:

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

評論JSON與IDE 最後,我回憶起了IDE通知時,我已經打開了CMS的保存副本生成JSON。它有一個預期的EOF,但如果你注意到上面的JSON結構,它會得到一個','這是造成這種麻煩。

我再次嘗試了-Raw和Out-String執行,並且按預期工作。