PowerShell 无法将字符串解析为 JSON

16 浏览
0 Comments

PowerShell 无法将字符串解析为 JSON

我正在尝试从PowerShell脚本中将一个JSON字符串传递给build.phonegap.com API,使用curl命令。根据phonegap的论坛,在Windows机器上运行时,JSON数据必须格式化为:

curl.exe -ku user@email:mypass -X PUT -d "data={\"password\":\"keypass\"}" https://build.phonegap.com/api/v1/key

确实,当从命令行调用时,这个命令可以正常运行。

然而,当我尝试从PowerShell脚本中调用时,双引号似乎被剥离了。

到目前为止,我尝试了以下几种方法:

  • 将JSON放在单引号字符串中:

curl.exe -ku user@email:mypass -X PUT -d '"data={\"password\":\"keypass\"}"'  https://build.phonegap.com/api/v1/key

  • 将JSON放在不带DOS转义反斜杠的单引号字符串中:

curl.exe -ku user@email:mypass -X PUT -d '"data={"password":"keypass"}"'  https://build.phonegap.com/api/v1/key

  • 将JSON放在单引号字符串中,转义双引号和反斜杠(带有反斜杠的DOS样式):

curl.exe -ku user@email:mypass -X PUT -d '\"data={\\\"password\\\":\\\"keypass\\\"}\"'  https://build.phonegap.com/api/v1/key

  • 将JSON放在双引号字符串中,使用PowerShell的反引号字符(`)转义双引号:

curl.exe -ku user@email:mypass -X PUT -d "`"data={\`"password\`":\`"build*2014`\`"}`""  https://build.phonegap.com/api/v1/key

有什么方法可以实现这个?

感谢您的时间,

Koen

0