如何在PowerShell中访问名称包含星号的属性?

sta*_*tor 2 powershell json wikipedia-api

维基百科 API 返回包含名称为 的元素的 JSON *。如何在 PowerShell 中访问这样的属性?

例子:

$json = Invoke-RestMethod -Method Get -Uri 'https://en.wikipedia.org/w/api.php?action=parse&pageid=10000&prop=wikitext&format=json'
$json.parse.wikitext.* # fails
Run Code Online (Sandbox Code Playgroud)

错误:“引用运算符后缺少属性名称。” 所以星号不被识别为属性名称。

JSON 摘录:

{ 
   "parse": { 
      "title": "Eiffel",
      "pageid": 10000,
      "wikitext": { 
         "*": "{{Wiktionary|Eiffel}}\n'''Eiffel''' ..."
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

Dan*_*ann 5

把它放在引号中:

$json.parse.wikitext."*"
Run Code Online (Sandbox Code Playgroud)

  • 如果我可以在这件事上给出我的两分钱,在处理可能被解释为特殊字符的文本时,请使用单引号,这样 PowerShell 将按字面意思读取字符串。 (5认同)
  • @MaximilianBurszley 是的,但奥雷尔的建议是有道理的_作为一个良好的一般习惯形成_:如果你知道某个东西是一个_字面_(逐字)字符串,请使用“...”;如果您需要_字符串扩展_,即嵌入字符串中的转义序列、变量引用和表达式的插值,请使用`"..."`。从这个角度来看,考虑到要逐字使用“*”,“$json.parse.wikitext.'*”作为这里的解决方案更可取。 (4认同)