如何在PowerShell中获取开头含点的JSON键对应值?
解决带点前缀的JSON属性取值问题
你遇到的语法错误是因为..是PowerShell的范围运算符(用于生成连续序列,比如1..5),不是访问对象属性的正确语法。针对键名为.expires的属性,有两种正确的取值方式:
方式1:带引号的点语法
将包含特殊字符的属性名用双引号或单引号包裹,直接通过点运算符访问:
# 双引号写法 $json.".expires" # 单引号写法 $json.'`.expires'
方式2:索引器语法
把属性名作为字符串传入对象的索引器,这种写法对所有特殊属性名都适用:
$json[".expires"]
完整示例
# 构造包含`.expires`键的JSON字符串 $jsonString = '{"`.expires": "2024-12-31T23:59:59Z"}' # 转换为PowerShell对象 $jsonObject = $jsonString | ConvertFrom-Json # 两种方式取值 $expires1 = $jsonObject.".expires" $expires2 = $jsonObject[".expires"] # 输出结果 Write-Host "方式1取值结果:$expires1" Write-Host "方式2取值结果:$expires2"
内容的提问来源于stack exchange,提问作者sysOut
相关产品推荐
相关产品推荐

