PowerShell 中的 JSON 数组
Posted
技术标签:
【中文标题】PowerShell 中的 JSON 数组【英文标题】:JSON Array in PowerShell 【发布时间】:2017-03-06 22:34:27 【问题描述】:我正在尝试在 PowerShell 中生成以下 JSON 字符串:
[
"FirstName": "Test",
"LastName": "Account2"
]
我目前在 PowerShell 中的代码是:
$Body = @
@
FirstName='Test'
LastName='Account2'
我得到的错误是:在散列文字中的键后缺少“=”运算符。
【问题讨论】:
【参考方案1】:外部 []
是 JSON 中的列表,您正在尝试使用 @
,它是 PowerShell 中的哈希表。使用@()
,它是 PowerShell 中的一个数组(列表):
$Body = @(
@
FirstName='Test'
LastName='Account2'
)
ConvertTo-Json -InputObject $Body
(我使用 -InputObject 而不是管道,因为 PowerShell 痴迷于讨人喜欢的列表,否则会删除列表)。
【讨论】:
谢谢!这是一种享受。我还更新了脚本以使用您提到的 InputObject。再次感谢!【参考方案2】:我在向 Powershell 列表添加新项目时遇到了一些问题。我尝试使用 .add() 函数添加项目。这返回了错误"Collection was of a fixed size."
使用 += 符号将项目添加到列表很简单。
$Body += @FirstName='Test2'; LastName='Account3'
就这么简单。
【讨论】:
小心,+= 应该非常昂贵,因为它创建了一个新数组,新元素附加到末尾。然后用新数组替换旧数组。见***.com/questions/14620290/array-add-vs以上是关于PowerShell 中的 JSON 数组的主要内容,如果未能解决你的问题,请参考以下文章
PowerShell - 使用排序的对象数组打印 JSON 输出?
PowerShell - ConvertFrom-Json 无法正确序列化具有混合属性的 JSON 项目数组 [重复]
在 PowerShell 中将没有展平列表的 JSON 数组写入文件
powershell 来自https://stackoverflow.com/questions/1862554/get-childitem-recurse-as-a-parameter-in-pow