2012-06-13 3 views
1

i ont cet objet JSON:Parse tableau de chaînes de JSON

{"error":null, 
"result":[{"id":"1234567890", 
      "count":1, 
      "recipients": 
      ["u3848", 
       "u8958", 
       "u7477474" 
      ], 
      "dateCreated":"2012-06-13T09:13:45.989Z" 
      }] 
} 

et je suis en train de trouver un moyen d'analyser correctement le tableau recipients dans un objet String[].

est-il un moyen facile de le faire?

EDIT:

trouvé cette réponse qui a toutes les choses nécessaires pour résultat: Sending and Parsing JSON Objects

+0

Quelle bibliothèque JSON (Java) utilisez-vous? –

+0

J'utilise la bibliothèque 'org.json.JSONObject' – thepoosh

+0

duplication possible de [Envoyer et analyser JSON dans Android] (http://stackoverflow.com/questions/2818697/sending-and-parsing-json-in-android – thepoosh

Répondre

6

la façon de faire ce que je voulais était le suivant:

JSONArray temp = jsonObject.getJSONArray("name"); 
int length = temp.length(); 
if (length > 0) { 
    String [] recipients = new String [length]; 
    for (int i = 0; i < length; i++) { 
     recipients[i] = temp.getString(i); 
    } 
} 
+0

D'où vient cet attribut "name"? Vous ne l'avez pas n'importe où dans votre message original. –

+0

l'attribut 'name' doit être prédéfini car JSON est un magasin de clé/valeur. – thepoosh

+0

Droite. (Je me demandais parce que vous avez répondu à votre propre question, où la clé n'était pas là.) Devrait être "destinataires" au lieu de "nom" donc. –

0

Vous pouvez essayer d'utiliser xstream avec JSON sérialiseur. Jetez un coup d'oeil this link

0

Je suggère toujours ma bibliothèque préférée json-lib pour gérer les produits JSON.

Vous pouvez utiliser JSONArray pour convertir en Object[], bien que ce n'est pas String[], vous pouvez toujours utiliser parce que chaque méthode a ObjecttoString().

String sYourJsonString = "['u3848', 'u8958', 'u7477474']"; 
Object[] arrayReceipients = JSONArray.toArray (JSONArray.fromObject(sYourJsonString)); 
System.out.println (arrayReceipients [0]); // u3848