Question

J'ai un string dans une application Android que je suis en train de se transformer en un JSONObject. Les regards de string comme celui-ci (sauf plus et avec les valeurs réelles au lieu des valeurs fictives I): saisie ici

[[{"1":"a"}],[{"1a":"1a","1b":"1b"},{"2a":"2a","2b":"2b"}]]

J'ai entré cette string exacte en deux JSON validators en ligne, et les deux confirmer qu'il est JSON data valide. Je suppose donc que le constructeur de JSONObject serait en mesure d'accepter cette chaîne et le convertir en un JSONObject. Mais lorsque je tente:

json = new JSONObject(result);

Si « résultat » est une variable chaîne contenant la chaîne indiqué ci-dessus, je reçois l'exception suivante:

JSONException: A JSONObject text must begin with '{' at character 1 of [[{"1":"a"}],[{"1a":"1a","1b":"1b"},{"2a":"2a","2b":"2b"}]]

Qu'est-ce qui se passe ici? Est-ce que l'analyseur de la JSONObject cassé?

Était-ce utile?

La solution

Vous essayez de créer un JSONObject, mais ce que vous donnez en fait il est un JSONArray. Avez-vous essayé de créer un lieu JSONArray?

Vous pouvez envelopper votre tableau dans un objet afin que vous puissiez créer un JSONObject sortir.

Autres conseils

Je suggère d'utiliser le bibliothèque GSon au lieu car il semble être plus riche en fonctionnalités.

En outre, il peut être utile d'utiliser cet outil pour tester vos données (vos données sont en cours de validité BTW):

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top