1

Jenkins はhttp://jenkins.net/jobs/MyJob/lastBuild/api/jsonから JSON を提供してくれます

次に、HTTParty を使用して次のように取得します。

response = self.get( url, options )
change = response['changeSet']['items'][0]

これにより、最後の変更の内容がわかります。change.class は「ハッシュ」を返します。私がこれを試してみると:

change = response['changeSet']['items'][0]['revision']

JSON を見るとわかるように、「NilObject で未定義のメソッド '[]'」が表示されます。

私は何を間違っていますか?

EDIT3:

もちろん、問題はユーザーとキーボードの間にあります。このメソッドは最初に別の JSON で呼び出されました。これは、複数のプロジェクトの変更をポーリングしており、返された JSON オブジェクトの 1 つにそれらのキーが含まれていなかったためです。ああ!ごめん。

4

1 に答える 1

1

この種のエラーが発生した場合は、空のキーを押して、入力されているかのように使用しようとしています。JSON が何であるかを確認せずに言うのは難しいですが、そのうちの 1 つが失敗しています。これらを調べたいと思うでしょう:

response['changeSet']
response['changeSet']['items']
response['changeSet']['items'][0]

それらのいずれかが最終的に発生した場合nilは、問題を特定できます。JSON は任意の構造として返されるため、何のテストも行わずに一連の呼び出しを連鎖させると、問題が発生する可能性があります。

于 2012-08-22T15:40:54.300 に答える