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

Bibliothèques & Frameworks Discussion :

manipulation du fichier json


Sujet :

Bibliothèques & Frameworks

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juin 2010
    Messages : 80
    Par défaut manipulation du fichier json
    bonjour ,jai un probleme lors de l'ajout de nouveau objet dans mon fichier json
    j'arrive pas a enregister un nouveau objet sur mon json

    mon fichier json compte.json
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    { identifier: 'user',
      label: 'user',
      items: [
         { user:'T', pwd:'Alex', email:'iijijij'}
    ]}
    et ma fonction d'ajout :
    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
     
     
    function creation()
    {
        var item = {
            user: dojo.byId('user').value,
            pwd: dojo.byId('pwd').value,
            email: dojo.byId('email').value
     
           };
    var store = new dojo.data.ItemFileWriteStore({url: "compte.json"});
    store.newItem(item);
    store.saveItem(item);
     
    function saveDone(){
      alert("Done saving.");
    }
    function saveFailed(){
      alert("Save failed.");
    }
    store.save({onComplete: saveDone, onError: saveFailed});
     
     
     
     
    }
    je sais pas ce qui cloche dans mon code ! sinon n'aurait il pas une autre facon de proceder ?
    merci d'avance

  2. #2
    Membre chevronné
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2010
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2010
    Messages : 322
    Par défaut
    La fonction save de l'objet store ne permet pas de sauvegarder le fichier json.

    C'est uniquement une commande utilisée dans le cadre de manipulation dans les datagrid et autres objets utilisant les itemFileWriteStore. Cela permet de ne pas avoir de messages comme quoi il y a eu des modifications effectuées dans l'objet avant de passer dans une autre page.

    Si tu souhaites sauvegarder tes données, il te faut envoyer les données via un xhrPost à ton code java qui lui peut modifier ton fichier json.

    Javascript n'a pas les permissions pour faire ce genre de manipulation (donc dojo non plus).

    Par exemple :

    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
     
    function creation()
    {
            user = dojo.byId('user').value;
            pwd = dojo.byId('pwd').value;
            email = dojo.byId('email').value;
     
            var xhrArgs = {
    		url:"SaveUser",
    		postData: "user="+user+"&pwd="+pwd+"&email="+email,
    		handleAs: "text",
    		error: function(error) {
    			rapportErreur(error);
    	        }
            }
     
             //Call the asynchronous xhrPost
             var deferred = dojo.xhrPost(xhrArgs);
             deferred.addCallback(function(data) {
                     alert("User sauvegardé!");
             }
    };

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juin 2010
    Messages : 80
    Par défaut
    merci pour la reponse
    un code java par exp un fichier jsp du type ?
    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
    <%@page import="java.io.FileWriter"%>
    <%@page import="java.io.File"%>
    <%@page import="java.io.IOException"%>
    <%
     
    	String filename = "compte.json";
    	String path = getServletContext().getRealPath("/");
     
    	try{
    		FileWriter fw = new FileWriter(path+filename);
    		String input = request.getParameterNames().nextElement().toString();
    		fw.write(input);
     
    		fw.close();
    	}
    	catch(IOException e)
    	{
    		System.out.println(e.getMessage());
    	}
    %>

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juin 2010
    Messages : 80
    Par défaut
    merci pour la reponse
    un code java par exp un fichier jsp du type ?
    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
    <%@page import="java.io.FileWriter"%>
    <%@page import="java.io.File"%>
    <%@page import="java.io.IOException"%>
    <%
     
    	String filename = "compte.json";
    	String path = getServletContext().getRealPath("/");
     
    	try{
    		FileWriter fw = new FileWriter(path+filename);
    		String input = request.getParameterNames().nextElement().toString();
    		fw.write(input);
     
    		fw.close();
    	}
    	catch(IOException e)
    	{
    		System.out.println(e.getMessage());
    	}
    %>
    jai testé ,et ca me dit que lobjet est bien enregistré:
    mais quand je passe a l'authentification :
    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
    function authentification()
    {
       //cree un objet store avec le contenu du json
    var authStore = new dojo.data.ItemFileReadStore({
    		jsId:'store1',
    		//data: {items: [
    		//		{login:'ut1', mdp:'Alex'},
    		//		{login:'ut2', mdp:'country'}
    		//		]}
                    //ou
                   url:'compte.json'
    	});
            //permet de lire le contenu du store
    	authStore.fetch({
                    //requete ou l'on va ajouter les valeurs saisies dans les champs
    		query: {
    				user:dojo.byId('login').value, //champ login
    				pwd:dojo.byId('mdp').value}, //champ mdp
                    //a la fin de la recherche
    		onComplete: function (items,request){
                            //on scanne le resultat contenu dans items
    			for (i = 0; i < items.length; i++) {
    			var item1 = items[i];
    				alert(authStore.getValue(item1,"user"));
    			}
                            //si rien n'est trouve
    			if(i==0){
    				alert("mauvais login / mot de passe");
    			}
                            else{
       //document.getElementById("h1").style.display = "block";
       //document.getElementById("grid").style.display = "table-cell";
       //document.getElementById("h3").style.display = "block";
       //document.getElementById("a").style.display = "none";
       //document.getElementById("dec").style.display = "block";
     
    document.getElementById("authentif").style.display = "none";
    document.getElementById("dec").style.display = "block";
    document.getElementById("authentif1").style.display = "none";
    document.getElementById("dec1").style.display = "block";
    document.getElementById("opajout").style.display = "block";
    document.getElementById("img").style.display = "block";
    document.getElementById("id_test").style.display = "block";
    dojo.byId('login').value="";
       dojo.byId('mdp').value="";
    }
    il me sort cette erreur !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this._arrayOfTopLevelItems is undefined
    jsuis coincé sur cela ,j'espere connaitre lerreur !!

  5. #5
    Membre chevronné
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2010
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2010
    Messages : 322
    Par défaut
    Est-ce une erreur JavaScript ?
    Si ce n'est pas le cas, j'ai bien peur de ne pouvoir aider. Je ne connais pas le java.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Juin 2010
    Messages : 80
    Par défaut
    si ,c'est une erreur javascript
    en faite je te resume le truc :
    j'ai une fonction d'ajout de nouveau compte sur un fichier json (compte.json)
    une fois un compte crée ,il doit pouvoir s'authentifier a l'aide d'une fonction dauthentification pour acceder a un tableau ..
    donc je procede comme suit :
    unfichier json:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    { identifier: 'user',
      label: 'user',
      items: [
         { user:'T', pwd:'Alex', email:'iijijij'}
    ]}
    la fonction d'ajout d'un nouveau objet dans le json ,celle que tu ma donné:
    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
    function creation()
    {
            user = dojo.byId('user').value;
            pwd = dojo.byId('pwd').value;
            email = dojo.byId('email').value;
     
            var xhrArgs = {
    		url:"save_1.jsp",
    		postData: "user="+user+"&pwd="+pwd+"&email="+email,
    		handleAs: "text",
    		error: function(error) {
    			rapportErreur(error);
    	        }
            }
     
             //Call the asynchronous xhrPost
             var deferred = dojo.xhrPost(xhrArgs);
             deferred.addCallback(function(data) {
                     alert("User sauvegardé!");
             }
    };
    cette fonction va utiliser un code java comme tu as dit : save_1.jsp

    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
     
    <%@page import="java.io.FileWriter"%>
    <%@page import="java.io.File"%>
    <%@page import="java.io.IOException"%>
    <%
     
    	String filename = "compte.json";
    	String path = getServletContext().getRealPath("/");
     
    	try{
    		FileWriter fw = new FileWriter(path+filename);
    		String input = request.getParameterNames().nextElement().toString();
    		fw.write(input);
     
    		fw.close();
    	}
    	catch(IOException e)
    	{
    		System.out.println(e.getMessage());
    	}
    %>
    jusqua maintenant tout va bien ,il me renvoi : User sauvegardé!

    quand je passe a l'authentification :
    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
     
    function authentification()
    {
       //cree un objet store avec le contenu du json
    var authStore = new dojo.data.ItemFileReadStore({
    		jsId:'store1',
    		//data: {items: [
    		//		{login:'ut1', mdp:'Alex'},
    		//		{login:'ut2', mdp:'country'}
    		//		]}
                    //ou
                   url:'compte.json'
    	});
            //permet de lire le contenu du store
    	authStore.fetch({
                    //requete ou l'on va ajouter les valeurs saisies dans les champs
    		query: {
    				user:dojo.byId('login').value, //champ login
    				pwd:dojo.byId('mdp').value}, //champ mdp
                    //a la fin de la recherche
    		onComplete: function (items,request){
                            //on scanne le resultat contenu dans items
    			for (i = 0; i < items.length; i++) {
    			var item1 = items[i];
    				alert(authStore.getValue(item1,"user"));
    			}
                            //si rien n'est trouve
    			if(i==0){
    				alert("mauvais login / mot de passe");
    			}
                            else{
       //document.getElementById("h1").style.display = "block";
       //document.getElementById("grid").style.display = "table-cell";
       //document.getElementById("h3").style.display = "block";
       //document.getElementById("a").style.display = "none";
       //document.getElementById("dec").style.display = "block";
     
    document.getElementById("authentif").style.display = "none";
    document.getElementById("dec").style.display = "block";
    document.getElementById("authentif1").style.display = "none";
    document.getElementById("dec1").style.display = "block";
    document.getElementById("opajout").style.display = "block";
    document.getElementById("img").style.display = "block";
    document.getElementById("id_test").style.display = "block";
    dojo.byId('login').value="";
       dojo.byId('mdp').value="";
    }
    il me resort la fameuse erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this._arrayOfTopLevelItems is undefined

  7. #7
    Membre chevronné
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2010
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2010
    Messages : 322
    Par défaut
    D'accord !

    As-tu regardé ce que contient le fichier "compte.json" ?
    Est ce que cela correspond bien au formatage d'un fichier json comme ce que tu as au début ?

Discussions similaires

  1. Manipulation de fichier (copier, supprimer, déplacer)
    Par Guigui_ dans le forum Général Python
    Réponses: 1
    Dernier message: 21/10/2004, 10h26
  2. Manipulation des fichiers
    Par monsau dans le forum Langage
    Réponses: 7
    Dernier message: 21/09/2004, 17h45
  3. [LG]Manipulation de fichiers
    Par yffick dans le forum Langage
    Réponses: 29
    Dernier message: 10/01/2004, 15h04
  4. Manipulation de fichiers - gestion d'extensions
    Par ulukai dans le forum Linux
    Réponses: 13
    Dernier message: 02/07/2003, 15h28
  5. Réponses: 2
    Dernier message: 18/01/2003, 17h06

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