2017-02-14 111 views
0

我正在编写我的第一个Groovy脚本,我正在调用REST API。无法从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提到的,你似乎对其他客户端实例与响应对象vs 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负载。

您需要试验最后一行上的表达式以提取'level'值。