Comment peut-Rénovation 2.0 analyser imbriquée objet JSON?
Notre équipe de décider de les utiliser Rénovation 2.0 et je suis en train de faire une recherche initiale sur cette bibliothèque. Comme indiqué dans le titre, je veux analyser certains imbriquée objets JSON via Rénovation 2.0 dans notre application Android.
Par exemple, ici est imbriquée objet JSON avec le format:
{
"title": "Recent Uploads tagged android",
"link": "https://www.flickr.com/photos/tags/android/",
"description": "",
"modified": "2015-10-05T05:30:01Z",
"generator": "https://www.flickr.com/",
"items": [
{
"title": ...
"link": ...
"media": {"m":"This is the value I want to get:)"}
"description": ...
"published": ...
"author": ...
"author_id": ...
"tags": ...
},
{...},
...
]
}
Je suis intéressé par les objets JSON à l'intérieur de items
tableau. Je remarque qu'il y a certains postes sur l'analyse imbriqués objets JSON via Rénovation 1.X, mais la dernière Rénovation 2.0 Api a changé beaucoup de choses, ce qui est source de confusion lors de l'adaptation à la nouvelle Api.
Deux solutions me viennent à l'esprit:
- Écrire mon propre JSON convertisseur usine qui s'étend Convertisseur de.Usine.
- De retour de la crue de réponse dans un type de Chaîne et de l'analyser par moi-même. Mais ce n'est pas facile à obtenir de la crue de réponse de Rénovation 2.0 en fonction de mes premières recherches. Rénovation 2.0 semble insister dans la conversion de la réponse à quelque chose, avant de le passer pour moi et de la Modernisation ne pas fournir sa propre
StringConverter
. (J'ai peut-être mal~)
Mise à jour:, On peut en fait obtenir le brut de réaction par la mise en JSONElement
comme le pojo pour l'API HTTP de l'interface et l'utilisation GSONConverter fournis par des de Rénovation que le convertisseur.
- Ce sera dans les éléments de matrice? Vous pouvez publier qu'une partie trop?
- Mise à jour:)
- J'ai ajouté une réponse similaire à votre JSON. Essayez-la.
- Nice! Comme indiqué dans ma mise à jour de question, puis-je définir
private JSONObject media
en tant que membre dans mon pojo au lieu de définir un nouveauMedia
de la classe, puisque la valeur de la clémedia
est aussi un JSON? - Pas de. Vous avez besoin d'une classe plus pour que.
- Mise à jour de réponse que par yor nouveau JSON
- JSONElement a fait le tour. Merci!
Vous devez vous connecter pour publier un commentaire.
En supposant que votre JSON ressemble
Donc des classes Pojo serait
Remarque : Ceci est similaire solution pour votre JSON. Les membres de Items.java peut être changé si JSON a d'autres touches.
Mise à jour pour Pojo que de nouvelles JSON
Code suivant vous aidera à obtenir imbriquée objet json et tableau
par exemple: json
nous devons d'abord créer le modèle de la classe, de la classe du modèle éléments les noms sont les mêmes en json élément, nous pouvons utiliser
@SerializedName("for exact json name")
créer l'Interface de rénovation pour obtenir json élément dans l'url
il suffit de passer le paramètre d'url dans l'interroger récupérer automatiquement l'url
par exemple:
Dans votre classe Principale
Utilisation Gson facilitent l'analyse de vos modèles https://github.com/google/gson
Mes Méthodes D'Aide :
T
pourCall<T> httpApimethod(...)
dans l'API HTTP? Dois-je définir une classe avec le champitems
?T
sera votre classe pojo pourjson response
.ItemsHolder
qui est titulaire d'unList<Item> items
. Alors je peux obtenir leItem
instances deItemsHolder
's champitems
. Dois-je raté quelque chose? Merci:)avez-vous essayé de volley? ...je le préfère au cours de rénovation maintenant que c'est un produit de google.J'ai d'exemple, et si u ne pas l'esprit, je peux vous montrer.
http://www.androidhive.info/2014/09/android-json-parsing-using-volley/
J'ai oublié d'ajouter
@SerializedName
et@Expose
annotations à l'intérieur des objets de la Classe et après l'ajout de ces annotations problème résolu. Comme ceci:JSON:
et membre de la Classe: