2016-08-31 3 views
0

Ich habe einen Webservice, der einen riesigen JSON-Text an eine Android-App sendet. Es gibt ungefähr 20000 ID-Nummern. Leider, aber vielleicht nicht überraschend, ist das Timing out.So komprimieren Sie JSON

Welche Optionen habe ich? Am leichtesten fällt es mir ein, diese Daten irgendwie zu komprimieren. Gibt es eine Möglichkeit, dies (PHP Webservice, Java Android App) effektiv zu machen?

Fehlt das, gibt es eine Technik, JSON in Teilen zu senden? Wenn ja, wie funktioniert das? An welchem ​​Punkt wird JSON als zu groß angesehen, um einen Teil zu senden? Danke

+2

Können Sie Ihre Daten paginieren? Wenn ja, würde ich empfehlen ** paginieren Ihre Daten. ** – Makoto

+0

Gzipping Antwort kann in gewissem Maße helfen, aber die langfristige Lösung ist zu paginieren, wie von @Makoto vorgeschlagen – Vasan

+0

Wie paginierenden Daten in der Regel in PHP/Java für JSON getan ? – b85411

Antwort

0

Sie GZIP in PHP verwenden können und als Stream an Client senden und dann entschlüsseln Daten mit Java in Android

Sie dies für gzip in PHP verwenden können: GZIP

und gzip in Android: GZIP

0

Sie könnten Daten mit ob_gzhandler() komprimieren. Versetzen Sie diesen Aufruf in Ihr Skript vor jeder Ausgabe:

ob_start('ob_gzhandler'); 

Danach wird die Ausgabe mit gzip komprimiert.

Dies ist in der Tat keine gute Lösung. Sie sollten JSON aufteilen und als sequentielle kleinere Stücke senden. Was tun Sie sonst, wenn sogar komprimierte Daten zu groß sind?

Verwandte Themen