2013-01-11 1 views
2

J'ai ce tableau dans le code json.Traitement d'une chaîne JSON dans un tableau Java

$info=array(); 
while($row = mysql_fetch_array($result,MYSQL_ASSOC)){ 
    array_push($info,$row); 
} 
$info; 
$result_final->lugares_cercanos = $info; 

Imprimer:

{"logstatus":"1","lugares_cercanos":[{"nombre":"Rio Amazonas","distancia":"5119.000"}{"nombre":"Swissotel Quito","distancia":"5823.000"}{"nombre":"Laguna de Yaguarcocha","distancia":"71797.000"}]} 

Maintenant, le problème est, Comment puis-je mettre les champs de "lugares_cercanos" en java ArrayList ??

J'essaie avec ce code:

{ 
    JSONArray jdata=post.getserverdata(postparameters2send, URL_connect); 
    if (jdata!=null && jdata.length() > 0){ 
    JSONObject json_data; 
    ArrayList<NameValuePair> lugares = new ArrayList<NameValuePair>(); 

    json_data = jdata.getJSONObject(0); 
    logstatus=json_data.getInt("logstatus");       
    lugaresCercanos=json_data.getJSONArray("lugares_cercanos");  

    for (int i = 0; i < lugaresCercanos.length(); ++i) { 
     JSONObject rec = lugaresCercanos.getJSONObject(i); 
     String name = rec.getString("nombre"); 
     String dist = rec.getString("distancia"); 
     lugares.add(new BasicNameValuePair(name,dist)); 
    } 
    } 
} 
+1

alors qu'est-ce qui se passe après avoir essayé votre code? – Jason

+0

montre cette erreur: – user1957012

Répondre

3

Essayez ceci:

JSONObject j = jdata.getJSONObject("obj"); 
JSONArray jArray = j.getJSONArray("lugares_cercanos"); 
int len = jArray .length(); 
for(int i=0; i <len; i++){ 
    String nombre = jArray .getJSONObject(i).optString("nombre"); 

    --------- 
} 
0

La structure de haut niveau (à savoir la chaîne JSON que vous avez posté) n'est pas un tableau, mais un objet.

Je ne sais pas ce que votre méthode post.getserverdata fait, s'il y a une version qui peut renvoyer un JSONObject vous pouvez utiliser:

JSONObject jdata=post.getserverdataobject(postparameters2send, URL_connect); 
logstatus=jdata.getInt("logstatus"); 
lugaresCercanos=jdata.getJSONArray("lugares_cercanos"); 

... 
0

montrent cette erreur:

Erreur d'analyse de données org.json .JSONException: Value {"lugares_cercanos": [{"nombre": "Laguna de Yaguarcocha", "distancia": "8686205.000"}, {"nombre": "Swissotel Quito", "distancia": "8728811.000"}, { "nombre": "Rio Amazonas", "distancia": "8729333.000"}], "logstatus": "1"} de type org.json.JSONObject ne peut pas être converti en JSONArray