skip to Main Content

I am generating a json output file through Jenkins pipeline script. I need to parse JSON file through Jenkins Pipeline script further to get the key attributes like total incidents, total occurrences, type,policy and filenames of each from below json file.

JSON File,

{
    "id": "/var/lib/jenkins/workspace/sample",
    "type": "path_scan",
    "entities_with_incidents": [{
        "mode": "FILE",
        "filename": "/var/lib/jenkins/workspace/sample/fakesecret.txt",
        "incidents": [{
            "policy": "Secrets detection",
            "occurrences": [{
                "match": "234ae*****************5q345",
                "type": "apikey",
                "line_start": 2,
                "line_end": 2,
                "index_start": 22,
                "index_end": 49,
                "pre_line_start": 2,
                "pre_line_end": 2
            }],
            "type": "Generic High Entropy Secret",
            "validity": "no_checker",
            "ignore_sha": "16b4ab506f666f1d58d7f0b70c65e8036d0922c59023f6815b832b6d6465e670",
            "total_occurrences": 1
        }],
        "total_incidents": 1,
        "total_occurrences": 1
    }, {
        "mode": "FILE",
        "filename": "/var/lib/jenkins/workspace/sample/config.py",
        "incidents": [{
            "policy": "Secrets detection",
            "occurrences": [{
                "match": "ALKS*************4SDA",
                "type": "apikey",
                "line_start": 2,
                "line_end": 2,
                "index_start": 22,
                "index_end": 43,
                "pre_line_start": 2,
                "pre_line_end": 2
            }],
            "type": "Generic High Entropy Secret",
            "validity": "no_checker",
            "ignore_sha": "7ef2d76f21eacc87dbca2de386bebb2b7cf114d6bc5418ba7a36ef5084119054",
            "total_occurrences": 1
        }],
        "total_incidents": 1,
        "total_occurrences": 1
    }],
    "total_incidents": 2,
    "total_occurrences": 2,
    "secrets_engine_version": "2.81.0"
}

2

Answers


  1. You can use Python to load the json.txt file and convert it to dictionary

    import json
     
    with open('json.txt') as json_file:
        data = json.load(json_file)
        print(data["type"]) # path_scan will be printed
    
    Login or Signup to reply.
  2. You can use the readJSON step (works for reading json files or strings).
    It will parse json, and you will be able to access attributes by names or indexes.

    This is the documentation for it: https://www.jenkins.io/doc/pipeline/steps/pipeline-utility-steps/#readjson-read-json-from-files-in-the-workspace

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search