我有这个我想用Power
Shell阅读的文件:
var myMap = [ { "name": "JSON Example","attr": "Another attribute" } ]
我的PowerShell v3代码:
$str = Get-Content $file | Select -Skip 1; $str | ConvertFrom-Json;
但我总是得到这个错误:
ConvertFrom-Json : Invalid array passed in,']' expected. (1): [ At S:\ome\Path\script.ps1:60 char:8 + $str | ConvertFrom-Json; + ~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [ConvertFrom-Json],ArgumentException + FullyQualifiedErrorId : System.ArgumentException,Microsoft.PowerShell.Commands.ConvertFromJsonCommand
如果我将JSON代码手动复制并粘贴到代码中,一切都正常工作:
'[ { "name": "JSON Example","attr": "Another attribute" } ]' | ConvertFrom-Json;
解决方法
尝试管道到Out-String之前管道ConvertFrom-Json:
Get-Content $file | Select -Skip 1 | Out-String | ConvertFrom-Json
在您的工作示例中,JSON代码是一个字符串,而非工作示例返回一组行.管道Out-String将集合转换为单个字符串,这是InputObject参数接受的.