2010-11-25 9 views
5

Je viens de commencer à développer des applets. Je veux être en mesure de transmettre des données (JSON) à partir d'une fonction javascript, à une méthode dans mon applet.Exemple d'une fonction javascript transmettant des données JSON à une applet Java

Bien que je l'ai cherché, je ne trouve pas d'exemple qui montre comment faire cela. Quelqu'un peut-il s'il vous plaît soit montrer un lien vers une ressource qui montre comment faire cela, ou coller quelques lignes ici pour montrer comment faire cela.

, j'ai aussi les questions et suivantes:

  1. est-il une limite à la taille de chaîne JSON qui peut être transmis de JSON à l'applet? (si oui - qu'est-ce que c'est?)
  2. Est-il possible de compresser (zip) une longue chaîne avant de la passer de JSON à l'applet?

Répondre

2

Du côté JavaScript, vous devez utiliser JSON2 pour convertir vos données en texte JSON, en utilisant le code

var jsn = JSON.stringify({"x": "y"}); 

Ensuite, vous passez à l'applet:

var applet = document.getElementById("myApplet"); 
applet.setJSONData(jsn); 

Vous avez besoin , bien sûr, d'avoir une méthode publique sur votre applet que vous pouvez appeler. Du côté Java, vous pouvez utiliser Jackson pour analyser le JSON Java hashmaps ou aux haricots:

public class MyApplet extends JApplet { 
    public void setJSONData(String data) { 
     ObjectMapper mapper = new ObjectMapper(); 
     Map map = mapper.readValue(data, Map.class); 
     // TODO sth with map 
    }; 
} 

Soyez prudent avec les codages de caractères non-ASCII, il semble que le JSON produit dans le navigateur n'est pas toujours UTF -8, cela peut dépendre du fournisseur du navigateur ou de l'encodage de la page HTML.

Si vous êtes vraiment aventureux, vous pouvez expérimenter avec JSObject dans Java Plugin 2, au lieu d'utiliser JSON.