ConvertFrom-Json:无效的JSON原语

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ConvertFrom-Json:无效的JSON原语相关的知识,希望对你有一定的参考价值。

我正在尝试在azure vsts发布管道中以部署后操作内联脚本的形式执行此命令:

powershell -command "&
 $json = Get-Content '.\appsettings.json' -raw | ConvertFrom-Json;
 $data = '"allowedUrls" : [ "host" : "someUrl","protocol" : "https", "host":"localhost:44394","protocol" : "https"]' | ConvertFrom-Json;
 $json.allowedUrls = $data.allowedUrls;
 $json | ConvertTo-Json -Depth 32 | Set-Content '.\appsettings.json'; 
 " 

当我在powershell中运行它时它在本地工作,但是在天蓝色下,我得到了:

 Standard error from script: 
2020-06-09T08:27:08.5939074Z ConvertFrom-Json : Invalid JSON primitive: someUrl.
2020-06-09T08:27:08.5939545Z At line:1 char:286
2020-06-09T08:27:08.5940773Z + ...  host:localhost:44394,protocol : https]' | ConvertFrom-Json; Write- ...
2020-06-09T08:27:08.5941450Z +                                                  ~~~~~~~~~~~~~~~~
2020-06-09T08:27:08.5942156Z     + CategoryInfo          : NotSpecified: (:) [ConvertFrom-Json], ArgumentEx 
2020-06-09T08:27:08.5942641Z    ception
2020-06-09T08:27:08.5943137Z     + FullyQualifiedErrorId : System.ArgumentException,Microsoft.PowerShell.Co 
2020-06-09T08:27:08.5943649Z    mmands.ConvertFromJsonCommand

可能出什么问题了?

[当这样的转义字符串时$data = '“ allowedUrls " : [” host " :“ someUrl ",” protocol " :“ https ",” host ":“ localhost:44394 ",” protocol [ C0]“ https " :

我有

"]' | ConvertFrom-Json;
答案

这是解决方案:

以上是关于ConvertFrom-Json:无效的JSON原语的主要内容,如果未能解决你的问题,请参考以下文章

PowerShell:ConvertFrom-Json 将多个对象导出到 csv

格式化 Invoke-RestMethod 或 ConvertFrom-Json 返回的 [pscustomobject] 实例

convertfrom-json).head.head3.data8

PowerShell 2.0 ConvertFrom-Json 和 ConvertTo-Json 实现

PowerShell - ConvertFrom-Json 无法正确序列化具有混合属性的 JSON 项目数组 [重复]

无法使用powershell获取json值