Powershell ConvertFrom-Json грешка

Създадох един прост PowerShell скрипт fromJson.ps1 (по-долу):

param([string]$Jstring, [string]$JColumn)
$val = $Jstring | out-string | ConvertFrom-Json | select $Jcolumn
$val | format-table -auto

Сега се опитвам да анализирам примерен JSON, като използвам метода по-долу, но се проваля с грешка „Невалиден JSON примитив“. Стартирам го директно от командния ред и извиквам powershell.exe.

c:\powershell>PowerShell.exe ./FromJson.ps1 '{"username":"","uid":"","contextid":8651,"partnerEntID":0}' "contextid"

грешка:

ConvertFrom-Json : Invalid JSON primitive: . At
C:\SCRIPTS\PowerShell\FromJson.ps1:2 char:32
+ $val = $Jstring | out-string | ConvertFrom-Json | select $Jcolumn
+                                ~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [ConvertFrom-Json], ArgumentException
    + FullyQualifiedErrorId : System.ArgumentException,Microsoft.PowerShell.Commands.ConvertFromJsonCommand

Въпреки че същото работи абсолютно добре, ако го стартирам на подканата на powershell.

PS C:\PowerShell> ./FromJson.ps1 '{"username":"","uid":"","contextid":8651,"partnerEntID":0}' "contextid"

Някой сблъсквал ли се е с този проблем и разрешавал ли го е? Благодаря, NJ


person user1679411    schedule 14.08.2013    source източник


Отговори (1)


Анализаторът на cmd обработва кавички по различен начин от анализатора на PowerShell. Използвайте следното, за да получите същите резултати в cmd.

powershell "& {./FromJson.ps1 '{\"username\":\"\",\"uid\":\"\",\"contextid\":8651,\"partnerEntID\":0}' \"contextid\"}"

Стив

person stevlars    schedule 20.08.2013