2010-06-12 3 views
5

Je cherche une bibliothèque JSON ou YAML super simple (pas particulièrement ennuyeuse) écrite en Java, et qui peut être utilisée dans GWT sur le client, et dans sa forme Java d'origine sur le serveur. Ce que j'essaye de faire est ceci: J'ai mes modèles, qui sont partagés entre le client et le serveur, et ceux-ci sont la source primaire de l'échange de données. Je veux concevoir le service Web entre les deux pour être aussi simple que possible, et j'ai décidé de prendre l'approche RESTful. Mon problème est que je sais que notre application va grandir considérablement à l'avenir, et écrire tous les getters, setters, sérialisation, usines, etc. à la main me remplit de crainte absolue. Donc, pour l'éviter, j'ai décidé d'implémenter des annotations pour garder trace des attributs sur les modèles. La raison pour laquelle je ne peux pas tout sérialiser directement, en utilisant le propre de GWT, ou celle qui fonctionne par réflexion, c'est parce que nous avons besoin d'une certaine quantité de logique dans le processus de sérialisation. C'est à dire. si les références à d'autres modèles sont sérialisées lors de la sérialisation du modèle d'origine, ou si un ID est passé, et des choses simples et générales comme ça. J'ai ensuite écrit un processeur d'annotation pour pré-traiter mes modèles partagés et générer une classe d'implémentation avec tous les getters, setters, sérialisation, chargement paresseux, etc.Codage JSON ou YAML en GWT/Java sur le client et le serveur

Pour faire une histoire courte, j'ai besoin d'un type de simple La bibliothèque YAML ou JSON, qui me permet de coder et de décoder manuellement, afin que je puisse générer ce code via mon processeur d'annotation. J'ai jeté un coup d'œil autour des interwebs, mais chacun de ceux que j'ai croisés a soutenu une réflexion qui, bien que très bien faite, la rende pratiquement inutile pour GWT. Et dans le cas de la propre bibliothèque JSON de GWT, il utilise JSNI à des fins de rapidité, ce qui le rend inutile côté serveur.

Une solution à laquelle j'ai pensé impliquait l'écriture de deux ensembles de méthodes de sérialisation sur les modèles, un pour le client et un pour le serveur, mais je préfère ne pas le faire.

En outre, je suis assez nouveau pour GWT, et même si j'ai fait beaucoup de Java, il était de retour dans les 1,2 jours, donc c'est un peu rouillé. Donc, si vous pensez que je vais à propos de ce problème complètement dans le mauvais sens, je suis ouvert aux suggestions.

Répondre

4

Avez-vous examiné itemscript? Quelques extraits de la description sur la page Web:

  • Un multi-plateforme GWT & bibliothèque standard Java JSON, avec des classes pratiques, parseurs, et les services publics.
  • Une API de connecteur RESTful pour la récupération de données (JSON, texte & petits fichiers binaires) sur une variété de protocoles.
  • La même API JSON peut être utilisée à la fois dans Java standard et dans Java GWT.
+0

Vous Monsieur, êtes un sauveteur. On dirait que c'est exactement ce que le docteur a ordonné. +1 – KennethJ

Questions connexes