2016-05-05 6 views
2

Я работаю с JIRA API с журналом изменений проблемы. Вызов API возвращает JSON пары ключ/значение. Один из ключей - toString, который представлен в пользовательском объекте PS как NoteProperty. (Другие клавиши - «от» до «fromString» и т. Д.). Когда я ссылаюсь на toString NoteProperty, PS думает, что я вызываю метод строки ToString(), и он дает ошибку OverLoadDefinition.Значение Powershell Custom Object toString используется как свойство примечания

$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

Можете ли вы дать код, который воспроизводит это? Если я делаю '$ test =" {'items': {'toString': 2}} "| ConvertFrom-Json; $ test.items.toString', то он возвращает значение 2. И это показывает, что toString является NoteProperty в PSCustomObject. – TessellatingHeckler

ответ

0

Попробуйте поставить его в одиночных brakets так:

$response.changelog.histories.items.'toString' 
+0

Спасибо, но я получаю тот же результат - OverloadDefintions. – jure

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 с тем же именем. Но когда я ссылаюсь на одно значение массива в элементах массива элементов [0] .toString, PS знает, что я хочу NoteProperty.

Любые дальнейшие комментарии или проницательность в этом приветствуются!

 Смежные вопросы

  • Нет связанных вопросов^_^