我试着用JsonSlurper.parseText解析JSON文件,但总是遇到类似的问题。
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类型作为输入。因此,我尝试使用以下代码来确定输入的类型。
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()这将打印出以下内容:
class java.util.ArrayList我不明白为什么当我用正确的数据类型输入输入时,我会得到这个错误。
有什么建议吗?
发布于 2015-06-06 00:49:29
根据documentation,HTTPBuilder可能会为您解析您的JSON。如果您的JSON响应的根是一个JSON数组,那么这就解释了读取器变量中的ArrayList对象。
关于这如何解释抛出的异常。闭包的读取器参数是已解析的JSON的ArrayList,而不是未解析的JSON字符串。因此,代码在new JsonSlurper().parseText(reader)上失败,因为reader不是文本,并且JsonSlurper没有定义如何将ArrayList解析为JSON的方法。
https://stackoverflow.com/questions/30671325
复制相似问题