IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

parsing json erreur nullpointExcepetion


Sujet :

Android

  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mauritanie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 391
    Par défaut parsing json erreur nullpointExcepetion
    bonjour voici j ai erreur dont j arrive pas a trouvé la source :
    je veux parser mes fichiers json localement dans mon disque .
    voici je vous met tout ce que j ai codé et vraiment je ne sais d ou vient l erreur j ai besoin de votre aide et merci


    produit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public class Product {
     
         public int  storeId;
         public   int catalogId;
         public  int langId;
         public   int productId;
         public   int parent_category_rn;
         public  String  shouldCachePage;   
    }

    mon fichier json

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [{"storeId":"10101","catalogId":"10101","langId":-2,"productId":"10251","parent_category_rn":"10104","shouldCachePage":""}]
    ma classe parseur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    public class ParseJsonProduct {
     
     
    	public ArrayList<Product> parse (Context  context, int fichierjson )  throws  JSONException 
     
    	  {
              ArrayList<Product> pro = new  ArrayList<Product>();   
     
    		     InputStream  is = context.getResources().openRawResource(fichierjson);
    		      String  rawJson = stream2String(is);	  
    		      JSONArray  ob = new   JSONArray(rawJson);
     
    		      if(!rawJson.equals(""))
    		      { 
     
    		    	   for(int i=0;i<ob.length();i++)
    		    	   {
    		    	   JSONObject p = ob.getJSONObject(i);
     
    		    	          Product  pr = new   Product();
    		    		      pr.catalogId  =  p.getInt("catalogId");
    		    		      pr.storeId =  p.getInt("storeId");
    		    		      pr.langId  =  p.getInt("langId");
    		    		      pr.productId =  p.getInt("productId");
    		    		      pr.parent_category_rn = p.getInt("parent_category_rn");
    		    		      pr.shouldCachePage  =  p.getString("shouldCachePage"); 
    		    		   pro.add(pr);
    		 }
    		    	      }
     
     
    		  return     pro ;
    	  }
     
    	  private String stream2String(InputStream stream) {
    			InputStreamReader reader = new InputStreamReader(stream);
    			BufferedReader buffer = new BufferedReader(reader);
    			StringBuilder sb = new StringBuilder();
    			try {
    				String cur;
    				while ((cur = buffer.readLine()) != null) {
    					sb.append(cur);
    				}
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
    			try {
    				stream.close();
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
    			return sb.toString();
    		}
    }
    ma classe adapter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
     
    public class ProductAdapter  extends BaseAdapter{
     
     
    	private LayoutInflater		mInflater;
    //	private  Product   produit  = new Product();
    	private  ArrayList<Product> produits = new ArrayList<Product>() ;
     
    	  public   ProductAdapter(Context  context , ArrayList<Product> produits)
    	  {
     
    		        this.mInflater=  LayoutInflater.from(context);
    		        this.produits=produits;
    	  }
     
    		public int getCount() {
    			// TODO Auto-generated method stub
    			return produits.size();
    		}
     
     
    		public Product getItem(int position) {
    			// TODO Auto-generated method stub
    			return  produits.get(position);
    		}
     
     
    		public long getItemId(int position) {
    			// TODO Auto-generated method stub
    			return position;
    		}
     
    	  public static class ViewHolder {
    			TextView txtText;
    		}
     
     
     
    	  public View getView(int position, View convertView, ViewGroup parent) {
    			ViewHolder holder;
     
    			if (convertView == null) {
    				convertView = mInflater.inflate(R.layout.produit, null);
    				holder 	= new ViewHolder();
    				holder.txtText= (TextView) convertView.findViewById(R.id.txtTitle);
    				convertView.setTag(holder);
    			} else {
    				holder = (ViewHolder) convertView.getTag();
    			}
     
              final  Product  item =   produits.get(position);
    	holder.txtText.setText(item.catalogId + " " + item.langId+ " " + item.productId +"" + item.storeId+"" + item.parent_category_rn+ "" + item.shouldCachePage+ "");
     
    			return convertView;
    		}
    et en fin ma classe main

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    public class Main extends Activity {
    	  /** Called when the activity is first created. */
     
        ListView   mlistView ;
     
       @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
     
          mlistView  = (ListView)findViewById(R.id.txtTitle);
     
     
          ParseJsonProduct parser  = new   ParseJsonProduct();      
          ArrayList<Product>  produit  = null;
          try {
        	  produit =parser.parse(this,R.raw.fichierjson);
     
          } catch (JSONException e)
          {
        	// Une erreur s'est produite lors du traitement du 
    			// fichier json
    			Log.e("ParserJsonProduct", "ERREUR : " + e.getMessage());
    			e.printStackTrace(); 
          }
     
          if(produit!=null)
          {
        	  ProductAdapter  pr = new  ProductAdapter(this, produit);
        	  mlistView.setAdapter(pr);
        	  mlistView.setOnItemClickListener(new OnItemClickListener() {
        		  public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
    				//	Product p = (Product) ((ProductAdapter)mlistView.getAdapter()).getItem(arg2);
    				//	Toast.makeText(Main.this, p.productId+"",Toast.LENGTH_LONG).show();
    				}	  
    		});
          }
       }
    }
    et voici l erreur dont je ne sais meme je n e sais si j ai mal codé ou non j ai besoin de votre aide et merci d avance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    04-14 09:28:18.009: ERROR/AndroidRuntime(5933): Caused by: java.lang.NullPointerException
    04-14 09:28:18.009: ERROR/AndroidRuntime(5933):     at com.Categorie.json.Main.onCreate(Main.java:48)
    04-14 09:28:18.009: ERROR/AndroidRuntime(5933):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
    04-14 09:28:18.009: ERROR/AndroidRuntime(5933):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)

  2. #2
    Membre chevronné
    Homme Profil pro
    IUT Informatique
    Inscrit en
    Mars 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : IUT Informatique

    Informations forums :
    Inscription : Mars 2011
    Messages : 412
    Par défaut
    La ligne 48 de ton main correspond à quel ligne dans le main que tu nous montre?

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mauritanie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 391
    Par défaut
    merci de ta reponsse la ligne 48 correspond
    mlistView.setAdapter(pr); de la classe main
    et merci

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    322
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 322
    Par défaut
    Bonjour,
    Je pense que l'erreur vient d'ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mlistView  = (ListView)findViewById(R.id.txtTitle);
    Sinon je ne vois pas comment obtenir un nullpointerException avec ce code.
    Es tu sur de ton R.id.TxtTitle ? Ca me fait plus penser à un TextView

  5. #5
    Membre chevronné
    Homme Profil pro
    IUT Informatique
    Inscrit en
    Mars 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : IUT Informatique

    Informations forums :
    Inscription : Mars 2011
    Messages : 412
    Par défaut
    Hum hum c'est bizarre, parce que le NullPointerException t'es censé l'avoir seulement que tu n'as pas instancié un objet que tu utilise...

    Edit: Oui je pense que l'erreur doit venir d'ici, vu que tu instancie bien pr...
    Et si ca vient de la, un conseil pour évité tout problème, choisi toi même les identifiants.

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mauritanie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 391
    Par défaut
    un grand merci a vous tous , je suis vraiment reconnaissant et si je veux recuperer les donnée json a serveur local comment je faire ? et merci infiniment

  7. #7
    Membre chevronné
    Homme Profil pro
    IUT Informatique
    Inscrit en
    Mars 2011
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : IUT Informatique

    Informations forums :
    Inscription : Mars 2011
    Messages : 412
    Par défaut
    Il me semble que tu dois faire ça:

    variableOuSontStockerTesDonnéesJSon.get[typeDeLaDonnée]("[identifiant]").

    Moi ca me donne ca quand je récupère les données JSon stocké dans ma variable

    resultatFinal.getString("CodePostal")

  8. #8
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mauritanie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 391
    Par défaut
    ok merci beaucoup je cherche un peu et je reviendrai pour vous dire ce que j ai fait exactement je et merci infiniment

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JSON] Erreur "Error Parsing Data"
    Par VB 2008 dans le forum Android
    Réponses: 13
    Dernier message: 15/08/2012, 15h28
  2. parse json dans un code javascript
    Par chahira83 dans le forum jQuery
    Réponses: 5
    Dernier message: 11/12/2008, 16h39
  3. [BASH] parsing ini, erreur EOF
    Par Manurobate dans le forum Linux
    Réponses: 2
    Dernier message: 27/05/2008, 01h23
  4. parse JSON et expression régulière
    Par Bruno2000 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/06/2006, 16h39
  5. [SAX] Erreur de Parse suite à Erreur POI
    Par leminipouce dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 17/10/2005, 11h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo