Comment Compresser JSON en java et de décompression en Javascript
J'ai une grande quantité de données envoyées à partir du serveur, Javascript, qui est de prendre un temps assez long à charger.
Je me demandais comment je peux mettre en œuvre la compression au niveau du serveur et de décompression en Javascript. Je vous serais reconnaissant de toute aide.
Voir ici json.org/java, et developer.mozilla.org/en-US/docs/JSON
Vouliez-vous dire de codage/décodage ou vous fait de compresser/décompresser? Je suis confus
essayez d'utiliser la compression gzip, comme la plupart des navigateurs de la poignée que par défaut. Si cela ne suffit pas, nous aurions besoin de savoir quel type de données que vous envoyez à et vous aider à réduire ces données plus bas.
Qui serveur web utilisez-vous?
Merci pour la réponse rapide, Mon problème est que j'ai énormément de données JSON de retour d'un programme en java pour java script. Je me demandais si il n'y a aucun moyen de réduire la taille de l'objet JSON. Jboss5 est mon serveur d'application
Vouliez-vous dire de codage/décodage ou vous fait de compresser/décompresser? Je suis confus
essayez d'utiliser la compression gzip, comme la plupart des navigateurs de la poignée que par défaut. Si cela ne suffit pas, nous aurions besoin de savoir quel type de données que vous envoyez à et vous aider à réduire ces données plus bas.
Qui serveur web utilisez-vous?
Merci pour la réponse rapide, Mon problème est que j'ai énormément de données JSON de retour d'un programme en java pour java script. Je me demandais si il n'y a aucun moyen de réduire la taille de l'objet JSON. Jboss5 est mon serveur d'application
OriginalL'auteur user3118357 | 2013-12-19
Vous devez vous connecter pour publier un commentaire.
Pour compresser votre Chaîne, vous pouvez utiliser:
GZIPOutputStream est de java.util.zip
La plupart des navigateurs devraient être en mesure de gérer compressé avec gzip contenu sans avoir besoin de manuel de décompression.
Docs: GZIPOutputStream
Voir Chargement GZIP fichier JSON à l'aide d'AJAX si vous êtes en utilisant Ajax pour l'acquisition de données sur le côté client. Il est nécessaire de définir les en-têtes pour votre réponse
@hgoebl
mentionné.Est-il mentionner tout serveur d'application? Il a explicitement demandé comment compresser un peu de contenu et c'est ce qui est prévu dans la réponse. Cependant, vous avez tout à fait raison sur la partie ISO. Je vais éditer pour l'UTF-8. Merci
C'est toujours la mauvaise voie et que la toute petite partie du travail. Comment pourrait-il le décompresser ce côté client? Utiliser un GZIP bibliothèque JavaScript? Cela devrait être géré de manière transparente par le Serveur web ou le serveur Tomcat/Jersey/RESTeasy/... et le navigateur web sur le côté client.
En fait, nous pourrons probablement d'accord que la façon de le faire est le chargement progressif des données JSON, pas de compression. Je doute qu'il a besoin de toutes les données immédiatement après le chargement. Mais de décompression doit être gérée automatiquement par le navigateur. Par exemple, après réception d'un appel Ajax le navigateur ne prend tout ce qui est nécessaire pour afficher le contenu correctement après l'identification de l'en-tête de la reçu de données, pour autant que je sais. Ou je me trompe?
Je suis d'accord un la première partie. Il ne faut pas envoyer toutes les données, mais utiliser une sorte de pagination ou de maître-détail de recherche. Mais la manière de compresser n'est pas visible dans le navigateur. Il n'obtiendrez unparsable ordures. Vous devez définir l'en-tête HTTP de sorte que le navigateur sait que la charge est compressé.
OriginalL'auteur Dropout