2013-08-13 2 views
0

J'ai une réponse comme ci-dessous du nœud comment puis-je extraire être sous forme de tableau en Javatableau Extraction de chaîne de réponse

[ 
    { 
     "userName":"Steve", 
     "date":"Tue Aug 13 18:44:23 GMT+05:30 2013", 
     "message":"Good morning sir." 
    } 
] 

Note: finalement fait les gars, désolé pour vous de perdre du temps gars, voir mon dernier commentaire :)

Je fais une requête http au serveur écrit noeud, et dans le serveur j'envoie un tableau d'objets [{}, {}, ...] Retour à Java, maintenant à venir java, je vais lire la réponse en utilisant InputStream et en construisant le résultat String.

et je reçois la chaîne comme indiqué ci-dessus, ce que je veux est comme la façon de convertir la chaîne en tableau afin que je puisse boucle et accéder aux objets dans le tableau

HttpGet httpget = new HttpGet('some uri'); 
HttpEntity httpentity = httpclient.execute(httpget).getEntity(); 

private void renderResponseAndQueueResults(HttpEntity httpentity) { 
       try { 
        InputStream is = httpentity.getContent(); 
        String result = convertStreamToString(is); 
        is.close(); 
        appendResultToMap(result); 
       } catch (IllegalStateException e) { 
        e.printStackTrace(); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
      } 

      private String convertStreamToString(InputStream is) { 
       BufferedReader reader = new BufferedReader(new InputStreamReader(is)); 
       StringBuilder sb = new StringBuilder(); 

       String line = null; 

       try { 
        while((line = reader.readLine()) != null){ 
         sb.append(line + "\n"); 
        } 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } finally{ 
        try{ 
         is.close(); 
        }catch (IOException e){ 
         e.printStackTrace(); 
        } 
       } 
       return sb.toString(); 
      } 

le retour du convertStreamToString est une chaîne comme

[ 
    { 
     "userName":"Steve", 
     "date":"Tue Aug 13 18:44:23 GMT+05:30 2013", 
     "message":"Good morning sir." 
    } 
] 

maintenant comment puis-je boucle à travers elle

+1

JSONArray arr = new JSONArray (résultat); était le résultat est la chaîne de réponse; – Beast

+0

vous avez probablement envisagé d'utiliser une librairie json, qu'avez-vous fait? – lulyon

+0

Je ne suis vraiment pas bon en Java désolé, je viens d'obtenir le résultat comme spécifié comment puis-je convertir en un tableau – Beast

Répondre

0

Vous devez vous référer aux API JSON bibliothèque: http://www.json.org/javadoc/org/json/JSONArray.html.

Cela peut être quelque chose que vous voulez:

//process the JSON array parsed out from the source string 
for (int i = 0; i < arr .length(); i++) 
{ 
    //get each JSON object of the array 
    JSONObject iObj = arr.getJSONObject(i); 

    //access the content of the JSON object, like print it 
    System.out.println(iObj.getString("userName")); 
} 
+0

donc je dois aimer Chaîne s = convertStreamToString() JSONArray arr = new JSONArray (s); – Beast

Questions connexes