json - 如何在 Powershell 中创建带有数组的 JSON 对象
问题描述
我是 Powershell 的新手,我在谷歌上找不到这个,但是我如何构建一个里面有一个数组的 json 结构呢?是通过自定义对象吗?我在网上看到的语法有点困惑,不知道推荐的方法是什么。最终,我也需要能够将其保存到 JSON 文件中。
json_ret = {
"a": 4,
"b": [ {"c" : 5, "d": "text", "e": "foo"}]
}
解决方案
是的,您可以通过 PSCustomObject 构建 json 对象:
[PSCustomObject]@{
a = 4
b = @([ordered]@{
c = 5
d = "text"
e = "foo"
})
} | ConvertTo-Json
首先,我们使用其类型加速器 PSCustomObject 创建 PSObject。
然后我们定义根键和值“a”,我们必须在“b”内创建一个数组。
该
@()
语句创建了一个数组,但我们不能在数组中创建键值对。所以我们用它@{}
来创建hashtable。在它之前[ordered]
标志说哈希表保持我们创建它的确切结构。然后我们定义数组值,然后关闭内部数组哈希表。
现在我们结束 PSCustomObject 并对其进行管道传输
ConvertTo-Json
。现在你得到一个转换后的 json。
脚注
- 如果要将 json 转储到文件中,请使用以下命令:
[PSCustomObject]@{
a = 4
b = @([ordered]@{
c = 5
d = "text"
e = "foo"
})
} | ConvertTo-Json | Out-File "Filepath"
- 如果要将 json 保存到变量中:
$variable = ([PSCustomObject]@{
a = 4
b = @([ordered]@{
c = 5
d = "text"
e = "foo"
})
} | ConvertTo-Json)
推荐阅读
- time-series - 如何创建这种类型的循环?
- azure - Azure DevOps Services 是否支持租户限制?
- c - 在初始化指针数组时,为什么只有字符串不显示警告?
- java - maven-war 插件战争生成时间
- graphql-java - graphql-java:如何在以编程方式生成 graphql 模式时添加自定义标量类型?
- google-sheets - 查找当前月份在 Google 表格中的日期范围之间的天数
- internet-explorer - IE 11 win 10 文本框已禁用
- php - 需要为子目录中的多个 WordPress 或 WordPress 多站点虚拟子目录到根目录的 IIS 重写规则
- google-apps-script - 如何在 Google 幻灯片 apt 脚本 replaceAllText 中执行请求
- javascript - 如何放置一个可以在没有焦点按钮的情况下使用的 keyPress 处理程序?