Je vais recevoir un objet JSON ou un tableau du serveur, mais je n'ai aucune idée de ce que ce sera. J'ai besoin de travailler avec le JSON, mais pour ce faire, j'ai besoin de savoir s'il s'agit d'un objet ou d'un tableau.
Je travaille avec Android.
Quelqu'un a-t-il un bon moyen de faire cela?
Réponses:
J'ai trouvé un meilleur moyen de déterminer:
tokenizer est capable de renvoyer plus de types: http://developer.android.com/reference/org/json/JSONTokener.html#nextValue ()
la source
JSONTokener
. Je n'ai pas fait ça, mais je suppose que vous devriez skipPast ("your_key") . Mais je ne suis pas sûr. Cependant, vous devriez envisager d'utiliser le mappeur json: Gson, Jackson, Moshi et bien d'autres.Vous pouvez procéder de plusieurs manières:
{
, vous avez affaire à unJSONObject
, si c'est un[
, vous avez affaire à unJSONArray
.Object
), vous pouvez effectuer uneinstanceof
vérification.yourObject instanceof JSONObject
. Cela retournera true si votreObjet est un JSONObject. La même chose s'applique à JSONArray.la source
Voici la solution simple que j'utilise sur Android:
la source
json.has("data")
suppose que tout est facultatif (non demandé).Présenter d'une autre manière:
Voici
server_response
une chaîne de réponse provenant du serveurla source
Une manière plus fondamentale de procéder est la suivante.
JsonArray
est intrinsèquement une listeJsonObject
est intrinsèquement une cartela source
exemple de
Object.getClass (). GetName ()
la source
Pour ceux qui s'attaquent à ce problème en JavaScript, ce qui suit a fait le travail pour moi (je ne suis pas sûr de son efficacité).
la source
Mon approche en serait une abstraction totale. Peut-être que quelqu'un trouve cela utile ...
Et maintenant débarrassez-vous de ce comportement pour toujours ...
la source