web-dev-qa-db-fra.com

Groovy - Convertit un objet en chaîne JSON

Je suis assez habitué aux convertisseurs Grails, où vous pouvez convertir n'importe quel objet en une représentation JSON comme ceci ( http://grails.org/Converters+Reference )

return foo as JSON

Mais en gros groovy, je ne trouve pas de moyen facile de faire cela ( http://groovy-lang.org/json.html )

JSONObject.fromObject(this)

retourne des chaînes json vides ...

Est-ce que je manque un convertisseur évident Groovy? Ou devrais-je aller pour la bibliothèque jackson ou gson?

65
Wavyx

Voulez-vous dire comme:

import groovy.json.*

class Me {
    String name
}

def o = new Me( name: 'tim' )

println new JsonBuilder( o ).toPrettyString()
124
tim_yates

Les autres réponses ne pouvaient pas fonctionner dans la console d'évaluation d'Intellij, alors ...

groovy.json.JsonOutput.toJson(myObject)

Cela fonctionne assez bien, mais malheureusement

groovy.json.JsonOutput.prettyString(myObject)

n'a pas fonctionné pour moi.

Pour que ce soit joli imprimé, je devais faire ça ...

groovy.json.JsonOutput.prettyPrint(groovy.json.JsonOutput.toJson(myObject))
15
chim

Vous pouvez utiliser JsonBuilder pour cela.

Exemple de code:

import groovy.json.JsonBuilder

class Person {
    String name
    String address
}

def o = new Person( name: 'John Doe', address: 'Texas' )

println new JsonBuilder( o ).toPrettyString()
6
dhamibirendra