Android Firebase - ne Peuvent pas recevoir la bonne JSON de Firebase instantané
Mon application android se connecte à Firebase et tire d'Alerte "Objets" qui y sont envoyés par mon serveur.
Lorsque j'exporte les données de Firebase, j'ai une belle formaté représentation JSON de données.
Problème:
Quand je tire les données de mon appareil android à l'aide d'un DataSnapshot, les données '=' (les signes "égal") au lieu de ':' (point-virgule). Aussi les citations ne sont pas là.
Quand j'essaie de faire quelque chose comme JSONObject alert = new JSONObject(data.getValue().toString());
j'ai des erreurs pour des raisons évidentes. Je dis évident, car si vous regardez ce que mon code imprime à la console, vous pouvez voir qu'il n'est plus en cours de validité, format JSON.
Un ami a mentionné que j'ai besoin de faire quelque chose avec le codage, mais nous n'avons pas le temps d'en discuter.
Comment puis-je parcourir ces (un peu bizarre) Alerte les Objets que j'ai créés et de les transformer en objets JSON dans mon Java afin que je puisse accéder à leurs propriétés comme alert.date
et alert.message
.
Je pensais que les captures d'écran serait de vous aider à voir ce que je fais. Le firebase est pas garanti à tous si vous pouvez vous sentir libre de prendre un coup d'oeil. Il ne sera pas vraiment faire grand-chose et quand je vais à la production, je vais déménager de toute façon.
Je suis sûr que c'est une super question facile à répondre, je ne suis pas trop bien familiarisés avec JSON et l'encodage de l'ensemble.
Merci!
- Vous avez inclus une image au format JSON arbre dans votre question. Veuillez remplacer qu'avec le JSON en tant que texte, vous pouvez facilement obtenir en cliquant sur le bouton Exporter dans votre Firebase base de données. Avoir le JSON que le texte fait l'objet de recherches, nous permet de l'utiliser facilement pour tester avec vos données et de les utiliser dans notre réponse et, en général, est juste une Bonne Chose(tm) de le faire.
- C'est une capture d'écran de la Firebase texte exporté. Je suis sur mon téléphone dès maintenant mais quand je rentre chez moi, je vais charger la recherche de texte. Ce que vous voyez, il y a 99% de ce que. C'est seulement un peu plus de lignes.
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas accéder JSON natif de Java.
Mais la Firebase
DataSnapshot
de la classe fournit tout ce dont vous avez besoin.Si vous avez un
DataSnapshot
des données, à lafbAlerts
dans votre capture d'écran, vous pouvez imprimer la date+message et les bénéficiaires pour chaque:Alternativement, vous pouvez créer une classe Java qui représente une alerte. Voir la Firebase guide de lecture des données dans Android pour des exemples de cette.
vous pouvez à l'aide de gson bibliothèque
Utiliser ce moyen pour convertir les jsonObject forme la dataSnapshot
Du code ci-dessus l'extrait, il semble que vous avez un JSONArray plutôt qu'un JSONObject.
Dans ce cas, vous devez faire quelque chose comme ce qui suit:
Dans l'exemple - lorsque vous avez répétition de groupes, cela semblerait indiquer un tableau et, par conséquent, a besoin d'un itérateur pour accéder à l'objet contenu.