2012-02-10 4 views
0

Je suis en train d'analyser le tableau JSON suivant que je reçois de mon fichier php:Android JSON/gson désérialisation

actionsArray = [[ "19,431", "19,438"], [[ "8", "107 "], []], [" u1 "," u2 "]]

Je suis principalement intéressé par l'accès au tableau [[" 8 "," 107 "], []]; cependant, je reçois l'erreur, « com.google.gson.JsonParseException: array objet trouvé, mais Expecting: Nom: null: null 0 Grams Actions: null

Voici un extrait de mon code:

classe User contient : String name; int [] actions STRING grammes

  JSONArray inputarray; 
      try { 
       int[] userActionsArray = new int[0]; 
       inputarray = new JSONArray(br.readLine()); 

       JSONArray gramsArray = (JSONArray)inputarray.get(0); 
       JSONArray actionsArray = (JSONArray)inputarray.get(1); 
       JSONArray namesArray = (JSONArray) inputarray.get(2); 

       User[] values = new User[namesArray.length()]; 

       Gson gson = new Gson(); 
       *User userAction = gson.fromJson(inputarray.toString(), User.class); 
       //error occurs on the above line* 
       ... 

Répondre

1

A JSONArray de org.json, est-ce qui la méthode renvoie .toString() comme ["first","second"] (source disponible here)

Vous avez besoin de votre JSON lo ok comme: { myArray : [ "first", "second" ] } pour Gson l'analyser ... Où votre POJO (dans votre cas User.class) devrait ressembler à ceci:

public User { 
String[] myArray; 
} 
+0

Salut, merci pour votre réponse. Cela a du sens, mais je ne suis pas sûr de la bonne façon d'obtenir que mon JSONArray suive le format que vous avez spécifié {myArray: ["first", "second"]}. Pourriez-vous me pointer dans la bonne direction? – user836200

+0

Pouvez-vous créer une boucle et juste imprimer toutes les lignes afin que nous puissions voir le JSON entier? (Faites simplement une boucle sur br.readLine() et imprimez-la). Ou créez-vous manuellement le JSON? –

+0

J'ai été en mesure de résoudre le problème après l'utilisation des objets ArrayList. J'ai abandonné le gson et gardé les JSONArrays. J'ai récupéré le JSONArray à partir d'un fichier php. Merci pour votre aide (+1). – user836200

2

Ce problème se produit généralement lorsque vous essayez d'analyser ensemble, mais le service répond comme objet. Donc, d'abord tester la réponse que vous obtenez alors essayez d'analyser en conséquence.