How to parse JSON response in a built step in jenk

2019-05-07 06:05发布

问题:

In order to industrialize the deployments of an IBM product, I'm going to use its REST API interfaces. I plan to use jenkins in order to orchestrate the calls to the REST APIs. I'm still wondering if it's a good idea...? If so, is there any way to simply parse the JSON responses in order to be able to make some conditions in the steps? Thanks.

回答1:

You didn't say what you're using the API for, but if you have the Groovy plugin, you could use JsonSlurper

Something like

import groovy.json.JsonSlurper
URL apiUrl = "https://some.website/api/someFunction".toURL()
List json = new JsonSlurper().parse(apiUrl.newReader())

// do stuff with the json object

I'm not quite sure how you would take this and use it directly for conditional build steps during the execution of the job, though.

An alternative approach is to generate a set of jobs with the appropriate steps based on the API response, using the Job DSL Plugin. This sort of thing can be used for stuff like reading a list of SCM branches and generating jobs for each of them. That may or may not be what you're trying to do.



回答2:

JQ https://stedolan.github.io/jq/ is a JSON parser for bash. I have used it in the past and its beautiful.

You can download JQ to your Jenkins server, and then call JQ in your build step bash scripts



回答3:

If you are using Pipeline Job, you will be happy with Pipeline Utility Steps Plugin