2017-02-14 11 views
0

私はREST APIを呼び出す最初のGroovyスクリプトを作成しています。RESTClientレスポンスからデータを抽出できません

私は次の呼び出しがあります。

def client = new RESTClient('http://myServer:9000/api/resources/?format=json') 

返します

[[msr:[[data:{"level":"OK"}]], creationDate:2017-02-14T16:44:11+0000, date:2017-02-14T16:46:39+0000, id:136]] 

を、私はこのように、フィールドlevelを取得しようとしています:

def level_value = client.get(path : 'msr/data/level') 

しかし、ときに私を得られた変数の値を印刷します。

println level_value.getData() 

私が代わりにフィールドの全体JSONオブジェクトを取得:

[[msr:[[data:{"level":"OK"}]], creationDate:2017-02-14T16:44:11+0000, date:2017-02-14T16:46:39+0000, id:136]] 

だから、私は間違って何をやっていますか?

+1

'path'はあなたが打っているURLパスであり、レスポンスの要素のパスではありません –

答えて

1

RESTClientのドキュメントは見ていませんが、Timのメモのように、レスポンスオブジェクトとjsonデータの間には、残りのクライアントインスタンスと少し混乱しているようです。

def client = new RESTClient('http://myServer:9000/api/resources/?format=json') 
def response = client.get(path: 'msr/data/level') 
def level = response.data[0].msr[0].data.level 

などの行に沿ったものがあります。ここで重要な点は、clientがRESTClientのインスタンスであり、responseがサーバーからのhttp応答を表す応答オブジェクトであり、response.dataがレスポンスに解析されたjsonペイロードを含むことです。

「レベル」の値を引き出すには、最後の行の式を試してみる必要があります。

関連する問題