chaîne simple, Parse JSon dans Android
Question
Je le code suivant:
String response = webService.webGet(""); the response of the web service
String LargeImage = new Gson().fromJson(response,String.class);
byte[] imageByteArray = Base64.decode(LargeImage);
réponse est comme:. "IVBORw0KGgoAAAANSUhEUgAAAZAAAAGQCA ..." une image base64 ayant environ 400,000 caractères
La réponse est très rapide du service Web. Quand il essaie d'analyser avec Gson après un certain temps (comme 20-30 secondes) j'obtenir une erreur de mémoire. Comment puis-je analyser cette chaîne simple sans Gson, il devrait être assez simple, mais je ne sais pas comment le faire. Conseillez-moi, s'il-vous-plaît. Nous vous remercions de votre temps
La solution
modifier le codage d'image base64 dans une URL où vous pouvez télécharger l'image directement.
Alors allez obtenir flexjson 2.1 et vous pouvez analyser JSON sur Android très facilement en quelques lignes. Il est également plus rapide que GSON.
http://flexjson.sourceforge.net
Mais à partir de votre poste, il semble que vous êtes juste d'envoyer l'image base64 sur JSON comme une seule chaîne. Pas besoin d'utiliser JSON dans ce cas. À moins que vous prévoyez d'emballer des métadonnées autour de lui dans l'avenir.
sauter également stocker l'image dans la base de données. Il suffit d'écrire au système de fichiers, et de mettre le chemin du fichier dans la base de données lié à votre objet. Beaucoup plus facile à déboguer quand vous vous demandez quelle est l'image que vous avez téléchargé, etc.
Autres conseils
réponse est comme:. "IVBORw0KGgoAAAANSUhEUgAAAZAAAAGQCA ..." une image base64 ayant environ 400,000 caractères
Vous avez got plaisantez.
S'il vous plaît me conseiller.
Trouver un service Web sensible et basculer vers elle. Si quelqu'un à votre entreprise a écrit le service Web, leur mettre le feu. Si a écrit le service Web, vous feu. Je ne vois pas besoin d'être retourner une image - en particulier celle qui massif -. Dans le codage base64, enveloppé dans JSON
En attendant, vous pouvez essayer analyseur intégré dans Android JSON plutôt que Gson.