首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JsonSlurper返回无方法签名: groovy.json.JsonSlurper.parseText()适用于参数类型:(java.util.ArrayList)

JsonSlurper返回无方法签名: groovy.json.JsonSlurper.parseText()适用于参数类型:(java.util.ArrayList)
EN

Stack Overflow用户
提问于 2015-06-06 00:22:41
回答 1查看 10.7K关注 0票数 2

我试着用JsonSlurper.parseText解析JSON文件,但总是遇到类似的问题。

代码语言:javascript
复制
def jsonParse = null
def http = new HTTPBuilder(url)
http.auth.basic(username, password)
http.request(Method.GET) {
    response.success = { resp, reader ->;
      jsonParse = new JsonSlurper().parseText(reader)
    }
}

每当我运行我的应用程序时,错误消息显示

没有方法签名: groovy.json.JsonSlurper.parseText()适用于参数类型:(java.util.ArrayList)

我知道JsonSlurper.parseText()要求java.util.ArrayList类型作为输入。因此,我尝试使用以下代码来确定输入的类型。

代码语言:javascript
复制
def jsonParse = null
def http = new HTTPBuilder(url)
http.auth.basic(username, password)
http.request(Method.GET) {
    response.success = { resp, reader ->;
      jsonParse = reader
    }
}
render jsonParse.getClass()

这将打印出以下内容:

代码语言:javascript
复制
class java.util.ArrayList

我不明白为什么当我用正确的数据类型输入输入时,我会得到这个错误。

有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-06 00:49:29

根据documentation,HTTPBuilder可能会为您解析您的JSON。如果您的JSON响应的根是一个JSON数组,那么这就解释了读取器变量中的ArrayList对象。

关于这如何解释抛出的异常。闭包的读取器参数是已解析的JSON的ArrayList,而不是未解析的JSON字符串。因此,代码在new JsonSlurper().parseText(reader)上失败,因为reader不是文本,并且JsonSlurper没有定义如何将ArrayList解析为JSON的方法。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30671325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档