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

jQuery Discussion :

Décoder une structure json


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2015
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2015
    Messages : 20
    Par défaut Décoder une structure json
    Bonjour,

    Je dois récupérer une structure de données depuis un script php vers du javascript en passant par du json mais ne sais pas trop comment m'y prendre. Cela fait plusieurs jours que je cherche des exemples pour m'inspirer mais ne trouve que des trucs super compliqués ^^

    alors voilà si j'ai bien compris mon script php retourne ma structure data via json comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo json_encode($data);
    mais du côté javascript je ne sais pas du tout comment m'y prendre, qqn pourrait-il m'expliquer s'il vous plait ?

    et sinon qqn saurait me dire la différence entre json et serialize() ? existe-t'il une fonction javascript permettant de convertir une variable au préalable "serializée" ?

    vaut-il mieux utiliser json ou serialize?

    Merci.

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    les deux méthodes les plus simples sont JSON.parse et getJSON de jquery ...


    JSON.parse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    stringjson='<?php echo json_encode($data); ?>';
    //json parse
    JSON.parse(stringjson, function(json){ console.log(json) });
    Attention à l'ordre des " et ' dans le string json ...

    avec JQUERY

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    json=$.getSJON( "pagephpquifaisechojosonencode.php", function(json) {
      console.log( json );
    })
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre averti
    Femme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2015
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2015
    Messages : 20
    Par défaut
    Merci beaucoup.

    Je n'arrive pas à implémenter vos deux exemples.

    Voilà comment je m'y prends pour le 1er exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    				function envoyerFichier(filename) {
    					$.ajax({
    						type: "POST",
    						url: "envoyerFichier.php",
    						dataType: 'json',
    						data: ({filename: filename}),
    						success: function(out) { 
    							JSON.parse(out, function(json){ console.log(json) });
    							$("#container").html(out);
    							}
    						});}
    avec dans envoyerFichier.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	echo json_encode($data);
    ça ne génère pas d'erreur mais ça n'affiche rien sur ma page ni en console

    et pour le 2ème exemple, voilà comment je m'y suis prise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    				function envoyerFichier(filename) {
    					$.ajax({
    						type: "POST",
    						url: "envoyerFichier.php",
    						dataType: 'json',
    						data: ({filename: filename}),
    						success: function(out) { 
    							json=$.getSJON( "envoyerFichier.php", function(json) {
    								console.log( json );
    								})
    							$("#container").html(json);
    							}
    						});}
    ça ne fait rien du tout mais je me doute bien que je m'y prends mal.

    pardon je ne suis pas du tout au point c'est très confus dans ma tête...

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Dans ton premier exemple ...
    TON dataTyoe est json ... donc ton retour est déjà formaté

    regarde en console

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function envoyerFichier(filename) {
    					$.ajax({
    						type: "POST",
    						url: "envoyerFichier.php",						dataType: 'json',
    						data: ({filename: filename}),
    						success: function(out) { 
    							 console.log(out);
                                                             $("#container").html(out.key1);  // si ton json a une clef key1=> { key1: 'coucou' }
     });
     
    							}		
    				});}
    Dans ton exemple 2 ... inutile de refaire un getJSON dans le success de ton ajax ... il suffit de remplacer ton ajax par le getJSON
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function envoyerFichier(filename) {
    					$.getJson({"envoyerFichier.php",{filename: filename}), function(out) { 
    							JSON.parse(out, function(json){ console.log(json) });
    							$("#container").html(out);
    							}
    						)
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre averti
    Femme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2015
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2015
    Messages : 20
    Par défaut
    MERCI !!!

    voici le contenu de ma structure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    1 : 
    Cle : Jour; Valeur : 04/10/2015<br />
    Cle : ...
    Cle : ...
    ...
    2 : 
    Cle : Jour; Valeur : 04/10/2015<br />
    Cle : ...
    Cle : ...
    ...
    3 :
    ...
    (je sais que $data est bien renseigné car je l'affiche dans un fichier avant de sortir de mon script mais je n'ai encore rien réussi à afficher dans ma page html ni même dans la console (et est-ce que c'est normal que je vois rien en console car quand je fais un echo serialize($data); je vois bien la structure de données dans la console via firebug mais avec echo json_encode($data); la console est muette.

    ce bout de code ne m'affiche rien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    				function envoyerFichier(filename) {
    					$.ajax({
    						type: "POST",
    						url: "envoyerFichier.php",
    						dataType: 'json',
    						data: ({filename: filename}),
    						success: function(out) { 
    							console.log(out);
    							$("#container").html(out);
    							}
    						});}
    et ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    					function envoyerFichier(filename) {
    						$.getJson("envoyerFichier.php", {filename: filename}, function(out) { 
    							JSON.parse(out, function(json){ console.log(json) });
    							$("#container").html(out);
    							}
    							)
    					}
    génère une erreur
    TypeError: $.getJson is not a function
    $.getJson("envoyerFichier.php", {filename: filename}, function(out) {
    Merci.

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    js est case sensitive ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

Discussions similaires

  1. sizeof() d'une structure
    Par tut dans le forum MFC
    Réponses: 12
    Dernier message: 29/08/2006, 18h21
  2. Comment mettre en place une structure 3 tiers.
    Par WOLO Laurent dans le forum Débats sur le développement - Le Best Of
    Réponses: 13
    Dernier message: 27/07/2003, 22h01
  3. [toFAQ][socket] Envoi d'une structure
    Par julien20vt dans le forum C++
    Réponses: 15
    Dernier message: 23/04/2003, 15h47
  4. longueur d'une structure
    Par bohemianvirtual dans le forum C
    Réponses: 6
    Dernier message: 28/05/2002, 18h31

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