json - 如何在 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 ..
解决方案
推荐阅读
- amazon-web-services - 是否可以在 AWS Cloudformation 中指定数据格式转换?
- php - 正则表达式删除 URL 中的字符串
- azure - 无法在 azure 函数运行时 v1 中创建 python 函数应用
- json - swift json嵌套解析
- xamarin - 在一个视图中使用skiasharp的多个画布
- javascript - 选择选项 Javascript 不会触发网站
- sql-server - 使用已建立的列透视 SQL-Server 表
- angular - angular rxjs:在管道/concatMap 中访问 http 错误的参数?
- java - 被覆盖的 android 生命周期方法如何在 super 调用之后运行代码而不转到其后续的生命周期方法
- php - 将不同条件的 if.. elseif 链转换为 case switch