Domanda

Ho un string in un app Android che sto cercando di convertire in un JSONObject. Gli sguardi string come questo (tranne più a lungo e con valori effettivi invece dei valori fittizi sono entrato qui):

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

ho inserito questo string esatto in due JSON validators on-line, ed entrambi confermano di essere JSON data valida. Quindi presumo che il costruttore JSONObject sarebbe in grado di accettare questa stringa e convertirlo in un JSONObject. Ma quando provo:

json = new JSONObject(result);

Dove si trova il "risultato" di una variabile String che contiene la stringa sopra elencati, ottengo la seguente eccezione:

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

Che cosa sta succedendo qui? Si parser del JSONObject rotto?

È stato utile?

Soluzione

Si sta tentando di creare un JSONObject, ma ciò che in realtà si sta dando è una JSONArray. Hai provato la creazione di un JSONArray invece?

In alternativa, si potrebbe avvolgere l'array in un oggetto in modo da poter creare un JSONObject fuori di esso.

Altri suggerimenti

Io suggerirei di usare la biblioteca GSON , invece, come sembra essere più full-optional.

Inoltre, può essere utile utilizzare questo strumento per testare i dati (i dati è valida btw):

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top