-2

我目前正在研究一种使用 Groovy 的 JsonSlurper 解析 MySQL 查询部分输出的方法。

我正在尝试从此查询中提取 LAT 和 LONG 值。

包含 Json 的查询可以很好地读入数据库,并返回预期值,但是,当我尝试在我的 JsonSlurper 中解析这个 Json 时,我得到一个 java Missing Method 异常,它抱怨 parseText()。该错误建议使用 parseText 作为解决方案,尽管这是正在使用的。

错误如下:groovy.lang.MissingMethodException: No signature of method: groovy.json.JsonSlurper.parseText() is applicable for argument types: (java.util.ArrayList)

我的代码如下:

产生 json 的查询部分如下:

 SELECT   concat('{Address:"',n.address,'",LAT:"'map.details,'",LONG:"'map.details'"}') as list FROM table

然后我在我的 JsonSlurper 方法中调用该列表,该方法被填充为应用程序中的数据库字段:

def result = new JsonSlurper().parseText(table.list)
def latitude = result.get("LAT")
def longitude = result.get("LONG")

println latitude
println longitude

然后,我计划在网页中填充这些字段,但在我能够从解析中返回它们之前,我无法执行此操作。纬度和经度值是整数,尽管它们被解析为字符串。

4

1 回答 1

0

查询的结果是 JSON 字符串列表,即使只有一个元素。利用

new JsonSlurper().parseText(table.list.first())
于 2015-04-15T19:00:25.793 回答