json - 从 json 文件导入 Azure Devops 管道变量
问题描述
我想使用 json 文件来存储 powershell 脚本使用的变量。在我配置了管道的 azure devops 中,管道包含 powershell 脚本,其中包含变量列表。我想使用 json 文件并将所有变量存储在这个文件中。我想将 json 文件存储在 Azure 存储库中,并在管道启动后使用它。我不想使用变量组。我找到了这个解决方案 [ Json to Variable ] https://marketplace.visualstudio.com/items?itemName=OneLuckiDev.json2variable&targetId=02fbae5c-cc01-4c8b-a90f-7393a3156347但我读到了一些关于这个任务的不恭维的意见。有什么方法可以使用 json 文件作为存储变量的地方,或者我可以使用不同的文件格式?更新:
解决方案
为什么不直接使用 Powershell 内置 cmdlet ConvertFrom-Json
:. 请参阅有关此 cmdlet 描述的官方文档:Powershell: ConvertFrom-Json。
您可以添加脚本:
Get-Content "{JSON file path}" | out-string | ConvertFrom-Json
Get-Content
会将 JSON 文件读入字符串数组,ConvertFrom-Json
并将这些字符串转换为 PSCustomObject 对象。然后,您可以使用简单的杠杆点表示法(.
)调用确切的对象,然后以这种格式将其用于任务脚本。
以下是供您参考的简单示例:
$data = Get-content {your JSON file path}| out-string | ConvertFrom-Json
Write-Output $data.ts
在这里,我在本地 Powershell-ISE 中进行了尝试,这与 Powershell 任务中的用法相同。ts
是我的 JSON 对象之一。$(Build.SourcesDirectory)\..\..\...json
在 azure devops 中,如果将文件存储在 Repos 中,则可以使用指定文件位置的路径。
推荐阅读
- css - 如何从 Next.js 中的 css 模块导入样式表?
- reactjs - 将 Foxit 的 WebPDF 引擎正确导入 React 应用程序
- angular - AWS EBS 上的 Spring Web 应用程序无法与我的 Angular 前端一起使用
- html - CSS 网格:自动放置算法的工作原理
- c# - 这样做的更好方法?C#中的列表索引分配
- python - Python3、cv2.setMouseCallback() 和 cv2.MouseCallback() 参数 void* userdata
- c# - 停止构造函数中先前实例的计时器?
- google-sheets - 使用 Google Query 函数计算 FTR
- javascript - 尝试使用带条纹的 webhook 将数据发送到 Node.JS 应用程序
- asp.net - 如何在 ASP.NET Core Web API 中将 JSON 数据发布到控制器?