Есть ли простой способ получить набор данных JSON с удаленного сервера в Grails? - PullRequest
4 голосов
/ 06 января 2011

Есть ли простой способ получить набор данных JSON с удаленного сервера в Grails?

например. данные на http://example.com/data.json

Данные:

{
    "firstName": "John",
    "lastName": "Smith"
}

пример Groovy кода (теоретический):

def data = getJson('http://example.com/data.json')
println data.firstName // this will print "John"

Ответы [ 2 ]

5 голосов
/ 06 января 2011

Я считаю, что вы должны быть в состоянии:

import grails.converters.*

...

def data = JSON.parse( new URL( 'http://example.com/data.json' ).text )
println data.firstName
1 голос
/ 09 января 2011

Вы можете использовать Grails rest plug в , который позволяет вам выполнить запрос REST в json и позволяет обрабатывать все различные типы ответов. Это очень удобно.

Один пример будет что-то вроде:

import groovyx.net.http.HTTPBuilder
import groovyx.net.http.ResponseParseException
import net.sf.json.JSONException
import static groovyx.net.http.ContentType.JSON
import static groovyx.net.http.Method.GET

...
      def restMethod() {
        try {
          def http = new HTTPBuilder("http://www.example.com")
          def path = "/exampleService/info"

          http.request(Method.POST, JSON) {req ->
            uri.path = path
            contentType = 'application/json; charset=UTF-8'
            body = "{\"arg1\":\"value4Arg1\"}"

            response.success = {resp, json ->
                // do something with the json response
            }

            response.failure = {resp ->
              // return some error code
            }
          }
        } catch (JSONException jsonException) {
          // do something with the exception
        } catch (ResponseParseException parseException) {
          // do something with the exception
        } catch (Exception e) {
         // do something with the exception
        }
      }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...