La lecture de Contenu JSON
Je suis en utilisant jsoup pour gratter quelques données HTML, et ça fonctionne très bien passé. Maintenant, j'ai besoin de tirer du contenu JSON (seulement JSON, pas en HTML). Puis-je faire cela facilement avec jsoup ou dois-je le faire en utilisant une autre méthode? L'analyse que jsoup effectue l'encodage de données JSON il n'est donc pas l'analyse correctement avec Gson.
Merci!
- Comment un exemple de la problématique JSON?
Vous devez vous connecter pour publier un commentaire.
Tandis que la grande, Jsoup est un analyseur HTML, pas un parser JSON, donc il est inutile dans ce contexte. Si jamais vous l'essayez, Jsoup mettra le retour JSON implicitement dans un
<html><head>
et ainsi de suite. Vous ne voulez pas que. Gson est un parser JSON, alors vous avez certainement besoin.Concrètement, votre problème est probablement que vous ne savez pas comment nourrir une URL de retour d'un JSON à Gson. Dans ce cas, vous devez utiliser
URL#openStream()
pour obtenir unInputStream
et l'utiliserInputStreamReader
pour décorer en unReader
qui, enfin, peut être nourri à laGson#fromJson()
qui accepte unReader
.Jsoup n'est pas conçu pour l'analyse JSON. Utilisation Gson(ou tout autre java librairie JSON).
Pour obtenir le contenu distant avec Jsoup utiliser ceci:
Jsoup de ne pas analyser JSON, mais il peut être utilisé pour récupérer des données JSON facilement.
L'exemple lit les données JSON à partir de
http://time.jsontest.com
avec JSoupet l'analyse de JSON avec Gson. Pour exécuter cet exemple, vous devez Jsoup
et Gson dépendances.
Je ne sais pas à propos de jsoup, mais si c'est JSON valide, puis Gson devrait être en mesure de décoder (peut-être besoin de quelques personnalisé deserializers pour vos classes personnalisées).
Si ce n'est pas JSON valide et vous obtenez des erreurs, alors il y a un bug dans jsoup.
J'ai vu beaucoup de réponses et des gens qui écrivent des pages de dollars de code, je n'ai aucune idée pourquoi, mais vous pouvez le faire facilement avec GSON.