2017-08-04 1 views
1

J'essaie d'utiliser JSZip pour décompresser un fichier JSON, mais en raison de mon manque de compréhension du fonctionnement de JSZip, j'obtiens la réponse dans un format que je ne sais pas utiliser.JSZip a lu les données téléchargées (Angular 2)

Jusqu'à présent, ceci est mon code:

this.rest.getFile(this.stlLocation).subscribe(
      data => { 

        let JSONFIle = new JSZIP(); 

        JSONFIle.file(data.url, data._body, {binary : true, compression : 'DEFLATE'}); 

        console.log(JSONFIle); 
       }, 
       err => { 
        this.msgs.push({severity: 'error', summary: 'Error Message', detail: err}); 
       } 
      ); 

Je télécharger un fichier en utilisant un service 2 angulaire et j'utiliser un observable pour obtenir la réponse. Lorsque les données sont reçues, j'appelle finalement JSZip et j'essaie de décompresser le fichier mais le résultat de l'opération est un objet complexe avec mes données dispersées partout et enfouies dans plusieurs couches. Tout ce que je veux, c'est le fichier JSON décompressé que je peux ouvrir et traiter.

Merci pour votre aide,

Dino

Répondre

0

après un peu de lecture, je me suis rendu compte que j'allais sur le mauvais chemin. Si vous téléchargez le fichier dans un navigateur, vous ne devriez rien faire. Les navigateurs ajoutent automatiquement l'en-tête Accept-Encoding: 'deflate'; C'est à la fois inutile et pas une bonne pratique de le faire au niveau DOM/JS. Si vous utilisez NGINX le lien suivant peut vous aider:

NGINX COMPRESSION AND DECOMPRESSION