2016-06-01 42 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执行,并且按预期工作。