2012-08-27 6 views
13

を解析するとき、私はPowerShellをして読みたいこのファイルを持っている「無効な配列が渡されました」 :は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; 

答えて

24

ConvertFrom-Jsonに配管する前に、Out-Stringにパイプに試してみてください:あなたの作業の例では

Get-Content $file | Select -Skip 1 | Out-String | ConvertFrom-Json 

をJSONコード非実施例は、行のコレクションを返しながら、文字列です。 Out-Stringにパイプすると、コレクションはInputObjectパラメータが受け入れる単一の文字列に変換されます。

+0

は、それが機能するようになりました!説明ありがとう!私はあなたの答えを4分で受け入れます。 – ComFreek

-1

も働く別の答え:文字列として渡しますGC -raw <FILE>を使用し