带@符号的键名
Key Names With @ Symbol
我正在 PowerShell 中做一些 REST API 工作,我需要传递给 REST API 的一些键包含符号 (@
)。或者,从我的 REST API 返回的一些键包含符号 (@
)。
有没有办法转义这个字符并将值用作键的文字?
示例:
Context "Get Details By Machine Name" {
Mock Invoke-RestMethod {
return @{
links = @{}
content = @{
@type : CatalogResource
id : e5c83e8b-31df-4573-b14e-246ded62ba53
iconId : edd4f05a-5c59-485c-9d5b-d0280d7a6432
resourceTypeRef : @{id=Infrastructure.Virtual; label=Virtual Machine}
}
metadata = @{
size = 20
totalElements = 1
totalPages = 1
number = 1
offset = 0
}
}
}
我需要@type
作为哈希表的键。
键名以 @
开头没有问题,如果您的键名在引号中:
PS C:\> <b>@'</b>
>> <b>{</b>
>> <b>“@foo”:42</b>
>> <b>}</b>
>> <b>'@ | ConvertFrom-Json |格式-Table -AutoSize</b>
>>
@foo
----
42
如果您在 PowerShell 中定义哈希表,则相同:
PS C:\> <b>$ht = @{ '@foo' = 42 }</b>
PS C:\> <b>$ht</b>
名称值
---- -----
@foo 42
我正在 PowerShell 中做一些 REST API 工作,我需要传递给 REST API 的一些键包含符号 (@
)。或者,从我的 REST API 返回的一些键包含符号 (@
)。
有没有办法转义这个字符并将值用作键的文字?
示例:
Context "Get Details By Machine Name" {
Mock Invoke-RestMethod {
return @{
links = @{}
content = @{
@type : CatalogResource
id : e5c83e8b-31df-4573-b14e-246ded62ba53
iconId : edd4f05a-5c59-485c-9d5b-d0280d7a6432
resourceTypeRef : @{id=Infrastructure.Virtual; label=Virtual Machine}
}
metadata = @{
size = 20
totalElements = 1
totalPages = 1
number = 1
offset = 0
}
}
}
我需要@type
作为哈希表的键。
键名以 @
开头没有问题,如果您的键名在引号中:
PS C:\> <b>@'</b>
>> <b>{</b>
>> <b>“@foo”:42</b>
>> <b>}</b>
>> <b>'@ | ConvertFrom-Json |格式-Table -AutoSize</b>
>>
@foo
----
42
如果您在 PowerShell 中定义哈希表,则相同:
PS C:\> <b>$ht = @{ '@foo' = 42 }</b>
PS C:\> <b>$ht</b>
名称值
---- -----
@foo 42