groovy - 如何从 Atlassian 网站解析 jira 版本
问题描述
我面临一个问题。我必须从 Atlassian 网站解析 JSON 包含的 jira-core 版本列表。
尝试使用 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 块?
解决方案
问题是,这不是 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 }
推荐阅读
- android - 删除外部SD卡中的文件时如何再次获得权限
- javascript - 如何在只读模式下启用 ckeditor 插件?
- javascript - java脚本中createusermethod中的firebase.auth()错误
- python - 当从 YAML 传递数据以连接 MYSQL 数据库时,Python 抛出“ProgrammingError: 1045”
- c++ - 如何在三元条件运算符中添加换行符和连接?: 在 C++ 中
- java - 正则表达式模式在 Java 中抛出 PatternSyntaxException
- assembly - st8s013f2控制器中的stm8地址范围错误读取访问
- c# - 执行 DbCommand 失败 - 引入 FOREIGN KEY 约束
- xcode11.3 - 异常断点在 Xcode11.3 中不起作用
- reactjs - 带有功能组件的事件