我正在使用问题更改日志JIRA API
。 API调用返回JSON
键/值对。其中一个键是toString
,它在PS自定义对象中表示为NoteProperty
。 (其他键是“to”“from”“fromString”等。)当我引用toString NoteProperty
时,PS认为我正在调用ToString()
字符串方法,它给出OverLoadDefinition
错误。
$response
是我用来存储API调用输出的变量。
$response.changelog.histories.items.to # this works fine
$response.changelog.histories.items.fromString # this works fine
$response.changelog.histories.items.toString # This fails.
PS认为我想调用toString()
方法。
有没有办法强制PS使用NoteProperty
密钥中存储的toString
值?
答案 0 :(得分:0)
尝试将它放入这样的单个支架中:
$response.changelog.histories.items.'toString'
答案 1 :(得分:0)
通过尝试一些选项,我发现了一些有效的方法:
$JiraIssue = "https://jira/rest/api/2/issue/DAA-2662?fields=key,id,reporter&expand=changelog"
$response = Invoke-RestMethod -Method GET -Uri $JiraIssue -Headers @{"Authorization"="Basic $myCreds"} -ContentType application/json
$response.changelog.histories.items.tostring # FAILS
$response.changelog.histories.items[0].tostring # WORKS
foreach ($i in $response.changelog.histories.items ) {$i.tostring } # WORKS
当我引用items.toString时,看起来PS在toString方法和具有相同名称的NoteProperty之间混淆。但是当我在items数组项[0] .toString中引用单个数组值时,PS知道我想要NoteProperty。
欢迎任何进一步的评论或见解!