我正在编写我的第一个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]]
那么,我做错了什么?
答案 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有效负载。
您需要在最后一行试验表达式以提取“级别”值。