如何使用httpbuilder在groovy中将http get响应检索为完整的json String

时间:2017-06-09 23:38:53

标签: json groovy http-get httpbuilder

我想使用GET请求的响应json作为另一个请求的输入。为此,我收到的响应应该是正确的json格式。我正在使用HttpBuilder来做这件事。

    HTTPBuilder http = new HTTPBuilder(urlParam, ContentType.JSON);
    http.headers.Accept = ContentType.JSON;
    http.parser[ContentType.JSON] = http.parser.'application/json'

    return http.request(GET) {              
        response.success = {resp, json ->
            return json.toString()
        }

当我返回json.toString()时,它不是一个格式良好的json。我如何实现这一目标。当我点击我的获取网址时,我看到整个json,但没有使用上面的代码。谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

使用groovy.json.JsonOutput

HTTPBuilder http = new HTTPBuilder('http://date.jsontest.com/', ContentType.JSON);
http.headers.Accept = ContentType.JSON
http.parser[ContentType.JSON] = http.parser.'application/json'
http.request(Method.GET) {
    response.success = { resp, json ->
        println json.toString()         // Not valid JSON
        println JsonOutput.toJson(json) // Valid JSON
        println JsonOutput.prettyPrint(JsonOutput.toJson(json))
    }
}

结果:

{time=09:41:21 PM, milliseconds_since_epoch=1497303681991, date=06-12-2017}
{"time":"09:41:21 PM","milliseconds_since_epoch":1497303681991,"date":"06-12-2017"}
{
    "time": "09:41:21 PM",
    "milliseconds_since_epoch": 1497303681991,
    "date": "06-12-2017"
}