How to parse JSON response in a built step in jenk

2019-05-07 05:30发布

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.

3条回答
虎瘦雄心在
2楼-- · 2019-05-07 05:52

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楼-- · 2019-05-07 06:00

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

查看更多
Bombasti
4楼-- · 2019-05-07 06:04

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.

查看更多
登录 后发表回答