2013-08-23 7 views
-1

Je lis un peu JSON avec dans une application Android, mais il ne reconnaîtra pas le JSON suivantNe peut pas être converti en JSON

{"value":"1000","make":"Ford","model":"Focus","desc":"1.9 Zetec","Fuel":"petrol"} 

Ceci est sortie générée à partir d'un fichier PHP sur un serveur web. Y at-il un problème avec ce JSON ou est le problème avec le code suivant?

try { 
    JSONArray jArray = new JSONArray(result); 
    JSONObject json_data=null; 
    for(int i=0;i<jArray.length();i++){ 
    json_data = jArray.getJSONObject(i); 
    String car_value = json_data.getString("value"); 
    Log.e("JSON",car_value); 
    } 
} catch (JSONException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 
+1

Si vous allez analyser beaucoup de JSON Je recommande d'avoir un oeil à Jackson ou Gson, ils le font beaucoup plus facile .. – Simon

Répondre

3

Les données JSON que vous recevez est pas un JSONArray. C'est un objet JSONObject. Donc, vous devriez le recevoir comme:

JSONObject jArray = new JSONObject(result); 

Et si vous voulez la valeur que vous pouvez l'obtenir comme

String car_value = jArray.getString("value"); 
4

Étant donné que la chaîne n'est pas une baie JSON. C'est Json Object. Donc analyser avec l'objet Json.

comme ci-dessous

try { 
      JSONObject jObject = new JSONObject(result); 
      String value = jObject.getString("value"); 
      String make = jObject.getString("make"); 
      // TODO and so on 
     } catch (JSONException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
Questions connexes