无法从RESTClient响应中提取数据

时间:2017-02-14 18:58:34

标签: groovy

我正在编写我的第一个Groovy脚本,我正在调用REST API。

我有以下电话:

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 个答案:

答案 0 :(得分: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有效负载。

您需要在最后一行试验表达式以提取“级别”值。