Powershell 3.0 Powershell从Json转换错误

Powershell 3.0 Powershell从Json转换错误,powershell-3.0,Powershell 3.0,我从json.ps1创建了一个简单的PowerShell脚本(如下所示): 现在我尝试使用下面的方法解析一些示例JSON,但由于出现“无效JSON原语”错误而失败。我直接从命令提示符运行它,并调用powershell.exe c:\powershell>PowerShell.exe ./FromJson.ps1 '{"username":"","uid":"","contextid":8651,"partnerEntID":0}' "contextid" 错误: ConvertFrom-

我从json.ps1创建了一个简单的PowerShell脚本(如下所示):

现在我尝试使用下面的方法解析一些示例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

cmd解析器处理引号的方式与PowerShell解析器不同。使用以下命令可以在cmd中获得相同的结果

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

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