2014-09-24 6 views
6

che ho visto innumerevoli esempi di JsonSlurper utilizzati per analizzare il testo JSON e creare un "oggetto JSON" fuori di esso:Utilizzo di Groovy's JsonSlurper per la mappatura POGO effettiva?

def jsonObject = jsonSlurper.parseText(jsonText) 

Ma cosa succede se il testo JSON rappresentano uno dei miei FizzBuzz oggetti? Posso usare JsonSlurper per mappare l'oggetto JSON in un'istanza FizzBuzz? Se é cosi, come?

risposta

8

Dopo aver analizzato JSON con JsonSlurper Si riceve un Map. Se FizzBuzz ha un costruttore (vedi here) dovrebbe funzionare quando viene analizzato il numero Map passato al costruttore.

Vedere l'esempio seguente:

import groovy.json.JsonSlurper 

def json = """{ "name": "John", "age": 127 }""" 
def parsed = new JsonSlurper().parseText(json) 

def person = parsed as Person 

assert person.age == 127 
assert person.name == 'John' 

class Person { 
    String name 
    int age  
} 
+0

Grazie @Opal (+1) - due domande follow: (1) il mio 'esempio FizzBuzz' non ha un costruttore esplicito, in modo che dipende dai ctors predefinite Groovy fornisce; ** questo significa che ho un map map? ** E (2) Cosa succede se ho un altro oggetto che voglio 'JsonSlurper' per mappare, ma quell'oggetto (chiamiamolo' Widget' ha alcuni costruttori esplicitamente definiti su di esso ? ** In tal caso, è ancora possibile utilizzare 'JsonSlurper'? ** Grazie ancora! – smeeb

+1

Se non viene fornito alcun costruttore, il costruttore della mappa funzionerà, nel secondo non funzionerà in tutti i casi. – Opal

+1

Ok. è necessario fornire un costruttore vuoto o nessun costruttore per farlo funzionare. – Opal

Problemi correlati