2015-04-15 2 views
-2

В настоящее время я работаю над способом анализа вывода раздела MySQL-запроса с помощью Groovy's JsonSlurper.Использование JsonSlurper для синтаксического анализа вывода MySQL Json возвращает groovy.lang.MissingMethodException

Я пытаюсь вытащить значения LAT и LONG из этого запроса.

Запрос с включенным Json читается в базе данных с ожидаемыми значениями, однако, когда я пытаюсь разобрать этот Json в моем JsonSlurper, я получаю исключение Java Missing Method, которое жалуется на parseText (). Ошибка рекомендует parseText в качестве решения, , хотя это то, что используется.

Ошибка не выглядит следующим образом: groovy.lang.MissingMethodException: Нет подписи метода: groovy.json.JsonSlurper.parseText() применяется для типов аргументов: (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 

Затем я планирую заполнять эти поля на веб-странице, но я не могу этого сделать, пока не смогу вернуть их из синтаксического анализа. Значения широты и долготы являются целыми числами, хотя они анализируются как строки.

+0

Сообщение об ошибке очень ясно. Вы передаете 'ArrayList' вместо' String' в метод 'parseText'. – Opal

ответ

0

Результатом вашего запроса является список строк JSON, даже если имеется только один элемент. Использовать

new JsonSlurper().parseText(table.list.first()) 
Смежные вопросы