L'envoi et l'Analyse des Objets JSON dans Android
Je voudrais envoyer des messages sous la forme d'objets JSON à un serveur et d'analyser la réponse JSON à partir du serveur.
Exemple d'objet JSON
{
"post": {
"username": "John Doe",
"message": "test message",
"image": "image url",
"time": "current time"
}
}
Je suis en train d'essayer de parser le JSON manuellement en allant attribut par attribut. Est-il de la bibliothèque de l'utilité que je peux utiliser pour rendre ce processus plus facile?
- Cette URL n'est plus disponible... pourriez-vous le mettre à jour?
- Voici un exemple détaillé: Android – JSON exemple d'Analyse
- Paresh Mayani & @primpap .. je sais que Nous pouvons charger les données à partir du serveur à l'aide de JSON reçu de serveur à l'aide de la méthode get, je suis à l'aise avec elle .... mais si l'on utilise la méthode post pour envoyer les données au serveur, de faire de nous envoyer les données en JSON encore une fois, je suis en référence à la Citation de primpap question "je voudrais envoyer des messages sous la forme d'objets JSON pour Django Serveur" ..... Je suis de l'utilisation de Mysql sur le serveur .... ou j'envoie objet JSON ? ... pouvez-vous préciser cette info pour moi .... ou de tous les liens qui m'aident à comprendre le concept sera utile, Merci
Vous devez vous connecter pour publier un commentaire.
Je suis surpris, ils n'ont pas été mentionnés: mais au lieu d'utiliser de bare-bones plutôt le processus manuel avec json.org's petit paquet, GSon et Jackson sont beaucoup plus pratiques à utiliser. Donc:
Donc vous pouvez les lier à votre propre Pojo, pas une moitié de l'arbre des nœuds ou des Listes et Cartes.
(et au moins Jackson permet de lier à de telles choses trop (peut-être GSON ainsi, pas sûr), JsonNode, Carte, Liste, si vous voulez vraiment ces au lieu de "vrais" objets)
MODIFIER 19-MAR-2014:
Un autre nouveau candidat est Jackson jr de la bibliothèque: il utilise la même diffusion rapide de l'analyseur/générateur de Jackson (
jackson-core
), mais les données de liaison de la partie est minuscule (50 ko). La fonctionnalité est plus limitée (pas d'annotations, juste régulière Java Beans), mais en terme de performance doit être rapide, et l'initialisation (première demande) frais généraux très faible.Donc, ça pourrait être le bon choix, surtout pour les petites applications.
Vous pouvez utiliser org.json.JSONObject et org.json.JSONTokener. vous n'avez pas besoin de toutes les bibliothèques externes depuis ces classes viennent avec le kit SDK d'Android
org.json
est l'un des principaux PITA par rapport à quelque chose commeGSON
.GSON est plus facile à utiliser et la manière de faire si les données ont une structure définie.
Télécharger gson.
L'ajouter à la référencées bibliothèques.
Code pour Poster classe
C'est le JsonParser classe
Remarque: DefaultHttpClient n'est plus supporté par sdk 23, il est donc conseillé d'utiliser l'objectif sdk 21 du présent code.
Il n'y a pas vraiment quelque chose de JSON. Les accolades pour les "objets" (tableaux associatifs) et les crochets pour tableaux, sans touches (indexé numériquement). Dans la mesure du travail avec Android, il y a ready made classes pour que inclus dans le kit de développement (aucun téléchargement requis).
Découvrez ces classes:
http://developer.android.com/reference/org/json/package-summary.html
D'autres réponses ont noté Jackson et GSON - le populaire add-on JSON bibliothèques pour Android, et json.org le bare-bones JSON package est inclus dans Android.
Mais je pense qu'il est également intéressant de noter que Android a maintenant son propre complet API JSON.
Ceci a été ajouté en Nid d'abeille: API de niveau 11.
Cela comprend
- android.util.JsonReader: docs, et source
- android.util.JsonWriter: docs, et source
Je vais aussi ajouter une autre considération qui me pousse à revenir vers Jackson et GSON: je trouve qu'il est utile d'utiliser la 3ème partie des bibliothèques plutôt que d'android.* les paquets parce que le code que j'ai écris peut être partagé entre le client et le serveur. Ceci est particulièrement pertinent pour quelque chose comme JSON, où vous pouvez souhaiter pour sérialiser les données en JSON sur une extrémité pour l'envoi à l'autre extrémité. Pour utiliser de tels cas, si vous utilisez Java sur les deux extrémités, il contribue à éviter l'introduction d'android.* dépendances.
Ou je suppose que l'on pourrait saisir pertinentes android.* le code source et l'ajouter à votre projet de serveur, mais je n'ai pas essayé...
Vous pouvez télécharger une bibliothèque de http://json.org (Json-lib ou org.json) et de l'utiliser pour analyser/générer du JSON
vous avez juste besoin d'importer ce
im à l'aide de deux objets, car vous pouvez avoir un jsonObject dans un autre
puis j'ai mis le post json dans les autres comme cette
c'est la méthode que j'utilise pour faire une demande de
la configuration de la connexion
réglage de la outputstream
je l'utilise pour voir dans le logcat ce que je suis en envoyant
ici, la chaîne est construite
- je utiliser ce journal pour voir ce que sa venue dans la réponse
l'instanciation d'un json avec la Chaîne de caractères qui contient la réponse du serveur
si vous êtes à la recherche rapide de parsing json dans android que je vous suggère un outil qui est disponible gratuitement.
La Classe JSON Créateur de l'outil
Il est libre d'utiliser et de créer votre tous json l'analyse de classe à l'intérieur d'un une-deux secondes.. 😀
Bien qu'il existe déjà d'excellentes réponses sont fournies par des utilisateurs, par exemple en encourageant l'utilisation de GSON etc. Je voudrais suggérer l'utilisation de org.json. Il comprend plus de GSON fonctionnalités. Il vous permet aussi de passer chaîne json comme un argument c'est JSONObject et il prendra soin du reste.e.g:
JSONObject json = new JSONObject("some random json string");
Cette fonctionnalité en faire mon favori personnel.
Il existe différentes bibliothèques open source que vous pouvez utiliser pour l'analyse json.
org.json :- Si vous voulez lire ou écrire json, alors vous pouvez utiliser cette bibliothèque.
D'abord créer JsonObject :-
Maintenant, utilisez cet objet pour obtenir vos valeurs :-
Vous pouvez voir l'exemple complet ici
Jackson databind :- Si vous souhaitez lier et d'analyser votre json à particulier de classe POJO, alors vous pouvez utiliser jackson-databind de la bibliothèque, cela permettra de lier votre json de classe POJO :-
Vous pouvez voir l'exemple complet ici