2 votes

Convertisseur de JSON en code groovy?

C'est une sorte de question bizarre pour une situation bizarre. J'ai une structure JSON importante que je voudrais représenter dans du code groovy en cours d'exécution. J'ai besoin d'objets groovy qui reflètent la même structure que les objets JSON.

Comme on pouvait s'y attendre, une recherche web renvoie principalement des résultats avec des trucs de conversion groovy/json en temps d'exécution, mais rien sur des choses qui produisent du code groovy.

Vous pourriez penser que c'est de la paresse, mais c'est vraiment une structure JSON massive ! Un convertisseur sauverait des jours !

3voto

Will P Points 6355

Vous pouvez utiliser le JsonSlurper propre à Groovy pour analyser les objets JSON :

import groovy.json.*

def json = '{"name":"john", "surname":"doe", "languages": ["groovy", "python"]}'

def obj = new JsonSlurper().parseText(json)

assert obj.name == "john"
assert obj.surname == "doe"

assert obj.languages.containsAll("python", "groovy")

Bien sûr, la classe n'est pas typée : elle est seulement connue au moment de l'exécution. Si vous voulez lui donner un type, vous pouvez écrire un code qui génère le code en se basant sur un exemple (étant donné qu'un schéma json peut être rare).

MODIFICATION : si vous voulez générer le code des classes de modèle, vous pouvez essayer JSONGen, qui "analyse le JSON pour créer des fichiers source côté client pour modéliser la structure de données JSON". Je ne connais pas de solution pour Groovy, mais étant donné que l'intégration entre Java et Groovy est transparente, cela devrait fonctionner correctement.

1voto

Brian Henry Points 2077

Si vous voulez une représentation Groovy de votre JSON, vous pouvez obtenir cela via le JsonSlurper intégré. Cela vous donnera des Maps et des Listes Java de données avec lesquelles vous pourrez travailler.

Vous pouvez peupler des objets spécifiques et personnalisés que vous avez écrits pour représenter vos entités JSON en utilisant la fonctionnalité de liaison de données de Jackson (3ème partie) (voir ici).

-3voto

gerrytan Points 10345

Essayez d'utiliser un parseur JSON comme celui-ci. Selon sa documentation, il vous suffit de faire

JSON.parse

pour dé-sérialiser les données

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X