Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Android] Parsing JSON

    15 décembre 2012 à 18:19:09

    Bonjour,
    J'ai un petit soucis pour parser du json.
    Pour m'aider, j'ai repris cet exemple qui marche très bien : http://www.androidhive.info/2012/01/an [...] ing-tutorial/

    Le fichier Json est de type :
    {
        "contacts": [
            {
                    "id": "c200",
                    "name": "Ravi Tamada",
                    "email": "ravi@gmail.com",
                    "address": "xx-xx-xxxx,x - street, x - country",
                    "gender" : "male",
                    "phone": {
                        "mobile": " +91 0000000000",
                        "home": "00 000000",
                        "office": "00 000000"
                    }
            },
            {
                    "id": "c201",
                    "name": "Johnny Depp",
                    "email": "johnny_depp@gmail.com",
                    "address": "xx-xx-xxxx,x - street, x - country",
                    "gender" : "male",
                    "phone": {
                        "mobile": " +91 0000000000",
                        "home": "00 000000",
                        "office": "00 000000"
                    }
            },
            .
            .
            .
            .
      ]
    }


    J'ai donc compris que c'été une liste de contacts composé d'attributs et phone étant lui même un objet json.

    Mais le problème et que je doit parsé un fichier du type :

    {
    "expirationDate":"2012-12-16 3:45",
    "lines":
    {
    "line":[
    {
              "color"         : "(255,0,0)",
              "id"            : "11821949021891694",
              "name"          : "Basso Cambo / Balma-Gramont",
              "shortName"     : "A",          
              "network"       : "Tisséo",
              "transportMode" :
                     {         
                      "id"     :"13792273858822586",
                      "article": "le",
                      "name"   : "métro"
                    }                         
            }
            ,{
              "color"         : "(255,94,22)",
              "id"            : "11821949021891902",
              "name"          : "Navette aéroport",
              "shortName"     : "AERO",          
              "network"       : "Tisséo",
              "transportMode" :
                     {         
                      "id"     :"13792273858822585",
                      "article": "le",
                      "name"   : "bus"
                    }                         
            }
            ,
    .
    .
    .


    Je ne sais pas quoi faire de :

    {
    "expirationDate":"2012-12-16 3:45",
    "lines":


    J'ai donc essayé de modifié le code de cette manière : (mais rien ne s'affiche, par contre l'application ne plante pas)

    / url to make request
    	private static String url = "http://api.androidhive.info/contacts/";
    	
    	// JSON Node names
    	private static final String TAG_expirationDate = "expirationDate";
    	private static final String TAG_line = "line";
    	private static final String TAG_color = "color";
    	private static final String TAG_id = "id";
    	private static final String TAG_name = "name";
    	private static final String TAG_shortName = "shortName";
    	private static final String TAG_network = "network";
    	private static final String TAG_transportMode = "transportMode";
    	private static final String TAG_id_transportMode = "id_transportMode";
    	private static final String TAG_article = "article";
    	private static final String TAG_name_transportMode = "name_transportMode";
    
    	// contacts JSONArray
    	JSONArray line = null;
    	String expirationDate = null;
    
    	@Override
    	public void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.main);
    		
    		// Hashmap for ListView
    		ArrayList<HashMap<String, String>> contactList = new ArrayList<HashMap<String, String>>();
    
    		// Creating JSON Parser instance
    		JSONParser jParser = new JSONParser();
    
    		// getting JSON string from URL
    		JSONObject json = jParser.getJSONFromUrl(url);
    
    		try {
    			expirationDate = json.getString(TAG_expirationDate);
    			// Getting Array of Contacts
    			line = json.getJSONArray(TAG_line);
    			
    			// looping through All Contacts
    			for(int i = 0; i < line.length(); i++){
    				JSONObject l = line.getJSONObject(i);
    				
    				// Storing each json item in variable
    				String color = l.getString(TAG_color);
    				String id = l.getString(TAG_id);
    				String name = l.getString(TAG_name);
    				String shortName = l.getString(TAG_shortName);
    				String network = l.getString(TAG_network);
    				
    				// Phone number is agin JSON Object
    				JSONObject transportMode = l.getJSONObject(TAG_transportMode);
    				String id_transportMode = transportMode.getString(TAG_id_transportMode);
    				String article = transportMode.getString(TAG_article);
    				String name_transportMode = transportMode.getString(TAG_name_transportMode);
    				
    				// creating new HashMap
    				HashMap<String, String> map = new HashMap<String, String>();
    				
    				// adding each child node to HashMap key => value
    				map.put(TAG_name, name);
    				map.put(TAG_shortName, shortName);
    				map.put(TAG_network, network);
    				map.put(TAG_name_transportMode, name_transportMode);
    
    				// adding HashList to ArrayList
    				contactList.add(map);
    			}
    		} catch (JSONException e) {
    			e.printStackTrace();
    		}
    


    Quelqu'un aurait une idée du problème ? o_O
    • Partager sur Facebook
    • Partager sur Twitter

    [Android] Parsing JSON

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown