2009-12-12 7 views
0

Je souhaite utiliser JSON pour représenter des objets JS et les envoyer à un programme Java, et vice versa. Je voudrais aussi faire cela pour d'autres langues. C# à Java peut-être?JSON, JS vers Java et Vice Versa, et d'autres langues

Que dois-je utiliser pour cela? (Vous ne savez pas si on parle de sérialisation ou de liaison de données)

Éditer: Une fois qu'un objet Java est représenté dans JSON, cela signifie-t-il que JavaScript peut l'analyser et le convertir en objets JavaScript correspondants?

+0

Bibliothèques JSON? ou ai-je oublié quelque chose? – jldupont

+0

Merci pour vos réponses tout le monde. Je devrais pouvoir faire ceci, après avoir choisi une bibliothèque qui est. En lisant vos commentaires, je peux voir que mon principal problème était que je ne pensais pas à ce que je faisais correctement. – Nolan

Répondre

0

Je recommanderais d'utiliser Gson pour cela. Il a l'avantage de supporter très bien les génériques et les haricots imbriqués et il est également assez rapide. J'ai posté un exemple Gson#fromJson() qui convertit une chaîne JSON assez complexe à Java ici: Converting JSON to Java

Le Gson#toJson() pour convertir tout objet Javabean comme valide pour JSON est fondamentalement un morceau de gâteau:

String json = new Gson().toJson(object); 
response.setContentType("application/json"); 
response.setCharacterEncoding("UTF-8"); 
response.getWriter().write(json); 

Editer: Une fois qu'un objet Java est représenté dans JSON, cela signifie-t-il que JavaScript peut l'analyser et le convertir en objets JavaScript correspondants?

Bien sûr, vous pouvez y accéder comme un objet JS. Si vous êtes nouveau à utiliser JSON dans JS, puis je peux recomment ce tutoriel kickoff: http://www.hunlock.com/blogs/Mastering_JSON_%28_JavaScript_Object_Notation_%29

0

Pour aller de JSON à des objets en Java, j'ai entendu dire que json-simple fonctionne bien. Il mappe le JSON à une carte Java, qui peut contenir des chaînes, des nombres, des listes et d'autres cartes. C'est un peu plus simple que d'autres bibliothèques, qui mappent directement aux objets Java que vous devez créer pour représenter le JSON.

Pour une liste exhaustive des bibliothèques JSON dans la plupart des langues principales, y compris Java et C#, consultez json.org.

0

Vous pouvez utiliser Google Web Toolkit pour partager des objets entre javascript et Java. Avec GWT vous écrivez tout votre code en Java et ensuite le compilateur GWT gérera la sérialisation des appels RPC de javascript vers Java et vice vera.

+0

GWT est méga-overkill si tout le OP a besoin d'une simple sérialisation JSON et d'une désérialisation. –

+0

Pas nécessairement. GWT résume toute la sérialisation et la désérialisation. Je dirais même le contraire. GWT semble être une solution très simple pour passer des objets entre javascript et java. – Brad

0

Si vous voulez dire une connexion de tri (réseau, canal local, etc.), cela s'appellerait la sérialisation des données. Vous utiliseriez une bibliothèque pour encoder vos objets. json.org a une liste de bibliothèques qui peuvent faire ce que vous voulez.

Si vous écrivez un serveur Java avec une extrémité avant JS, il y a toujours GWT aussi (je ne l'ai jamais utilisé, mais entendu de grandes choses à ce sujet)

0

Pour sérialiser des objets javascript pour la transmission à un serveur, j'ai utilisé https://github.com/douglascrockford/JSON-js/blob/master/json2.js. Très agréable et facile.

Pour obtenir des données JSON dans et hors de java, j'ai trouvé cette bibliothèque assez simple: http://json-lib.sourceforge.net/

Création d'objets JavaScript à partir JSON est un non-problème. JSON est javascript valide. Vous pouvez simplement lancer eval, ou utiliser une librairie javascript, qui peut offrir une sécurité intégrée, ce qui n'est pas le cas.

Questions connexes