Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JsonSlurper不返回方法的签名:groovy.json.JsonSlurper.parseText()适用于参数类型:(java.util.ArrayList)_Json_Parsing_Groovy_Jsonslurper - Fatal编程技术网

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

JsonSlurper不返回方法的签名:groovy.json.JsonSlurper.parseText()适用于参数类型:(java.util.ArrayList),json,parsing,groovy,jsonslurper,Json,Parsing,Groovy,Jsonslurper,我正试图用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().parseTe

我正试图用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
我不明白为什么在输入正确的数据类型时会出现这个错误

有什么建议吗?

根据,HTTPBuilder可能正在为您解析JSON。如果JSON响应的根是JSON数组,那么这就解释了reader变量中的ArrayList对象


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

。。。我发誓我从没想过HTTPBuilder会帮我解析JSON。。。非常感谢你!!这解决了OP的问题,但没有回答OP的问题。当搜索这个问题的答案时,这个问题在谷歌搜索结果中不断出现,但是这个问题的公认答案提供了一个解决方法,而不是实际问题的答案:JsonSlurper不返回方法签名:groovy.json.JsonSlurper.parseText()适用于参数类型:(java.util.ArrayList)这可能会有所帮助