JSON в Groovy / Grails

Контроль TCPDF. Это имеет некоторый HTML к функциональности PDF, которая могла бы быть достаточно, для какого Вам нужно. Это также свободно!

6
задан Aliaksandr Belik 22 May 2014 в 17:20
поделиться

4 ответа

Есть несколько проблем с вашим примером кода. Прежде всего, чтобы получить доступ к GET и JSON таким образом, вам необходимо статически импортировать их:

import static groovyx.net.http.Method.GET
import static groovyx.net.http.ContentType.JSON

Это приведет к компиляции кода, но не к успешной работе. Значение url.path должно начинаться с символа '/' (как показано на странице HTTPBuilder ). Что еще более важно, JSON, который возвращается из URL-адреса, на который вы ссылаетесь , имеет совершенно другую структуру, чем та, которую возвращает пример кода, выполняющего поиск в Google. Если вы загрузите свой URL в очень удобную службу JSON Formatter в CuriousConcept , вы увидите структуру. Вот код, который отображает некоторые данные JSON:

println json.name
println json.id
json.fields.each {
  println it
}

Между прочим, в версии 0.5 есть критическое изменение. 0 из HTTPBuilder , относящегося к этому коду. Как говорится в сообщении о выпуске RC-1,

Свойство URL класса HTTPBuilder было переименовано в uri

Таким образом, если вы в какой-то момент перейдете на 0.5.0, вам нужно будет использовать uri.path вместо url.path

14
ответ дан 8 December 2019 в 05:56
поделиться

Если вы просто хотите получить данные, вы можете сделать это в Grails следующим образом:

import grails.converters.*;

def url = new URL("http://neotest.dabbledb.com/publish/neotest/f820728c-4451-41f6-b346-8cba54e52c6f/projects.jsonp")
def response = JSON.parse(url.newReader()) // response is an instance of JSONObject (see Grails API docs)

println response.toString(3) // Pretty-printed output
response.each { key, value ->
    println "$key = $value"
}

(как простая альтернатива)

11
ответ дан 8 December 2019 в 05:56
поделиться

Не отвечая на исходный вопрос, я заметил, что вы спрашивали о других возможных библиотеках. Не обращая внимания на Groovy, который я не использовал для этого, лучшая и простейшая библиотека Java для создания клиента веб-сервисов, на мой взгляд, безоговорочно - это Jersey.

-3
ответ дан 8 December 2019 в 05:56
поделиться

Я не знаком с HTTPBuilder, но, глядя на документацию, вы можете обойтись заменой

http.request( GET, JSON ) {

на

http.request( Method.GET, ContentType.JSON ) {

. Возможно, вам также придется:

import groovyx.net.http.Method
import groovyx.net.http.ContentType

I Я основываю это на документации для HttpBuilder.request () , которая вызывает метод и объект (который может быть ContentType ).

0
ответ дан 8 December 2019 в 05:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: