首页 > 解决方案 > 如何在 Groovy 中正确解析 JSON

问题描述

我不确定如何使用 Groovy 正确解析嵌套的 JSON。我已经包含了一个可用的 Python 脚本,因此您可以准确地看到我在 Groovy 中尝试做的事情。

我需要解析的 JSON:

json_payload = {"number": 3585, "url": "https://jenkins.test.com/job/test/3585/",
                  "displayName": "test_3585", "timestamp": 1516992464686,
                  "actions": [{"causes": [{"userId": "test"}]}]}

我想做什么(Python):

class JenkinsParser:
    def __init__(self, json_data):

        self.display_name = json_data['displayName']
        self.url = json_data['url']
        self.start_time = json_data['timestamp']
        self.exec_url = json_data['url']
        self.exec_number = json_data['number']
        self.user = None
        actions = json_data['actions']
        for a in actions:
            if 'causes' in a:
                for cause in a['causes']:
                    if 'userId' in cause:
                        self.user = cause['userId']

        url_split = self.execution_url.split("/job/")
        self.jenkins_url = url_split[0]
        self.job_name = url_split[-1].split("/")[0]

注意:Groovy 不一定是类,也不需要使用 JSonSlurper

如果我使用 JsonSlurper

def slurper = new groovy.json.JsonSlurper()
def result = slurper.parseText(json_payload)

我可以像这样访问我需要的所有值吗?

result.displayName
result.url
result.timestamp
result.url
result.number
result.actions.causes.userId

我不确定如何获取 userId ..

标签: jsongroovy

解决方案



推荐阅读