如何从Atlassian网站解析jira版本

问题描述 投票:0回答:2

我正面临一个问题。我必须解析包含来自Atlassian网站的jira-core版本的list的JSON。

在尝试使用JsonSlurper从网站解析JSON时,我收到一条错误消息:

“当前字符读取为'd',int值为100无法确定当前字符,它不是字符串,数字,数组或对象行号1索引号0”

码:

def http = new HTTPBuilder('https://my.atlassian.com/download/feeds/')
def html = http.get( path : 'current/jira-core.json')
def slurper = new groovy.json.JsonSlurper(type: JsonParserType.LAX).parse(html)
print slurper

我如何获得正确的JSON块?

groovy jira jenkins-groovy
2个回答
1
投票

问题是,这不是json ...这是一个jsonp回调,所以有效的json包含在downloads( ... ) javascript调用中

您可以使用正则表达式从URL中解包文本:

import groovy.json.*

def jsonp = new URL('https://my.atlassian.com/download/feeds/current/jira-core.json').text
def extract = jsonp =~ /^downloads\((.+)\)$/
if (!extract.matches()) {
    throw new RuntimeException("Bad jsonp!")
}
def parsed = new JsonSlurper().parseText(extract.group(1))

parsed.each { println it.description }

0
投票

虽然这不直接解决JSON与JSONP问题,但如果您只是想要使用Jira版本数据,还有一个名为iapetus.fyi的第三方网站提供Atlassian产品版本信息,包括向您的应用提供Firebase notifications的可能性用于版本更改事件。

© www.soinside.com 2019 - 2024. All rights reserved.