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

JavaScript Discussion :

JSOn to JS: Eval?


Sujet :

JavaScript

  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    174
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 174
    Par d�faut JSOn to JS: Eval?
    Quel est le problem dans ce code qui est cens� r�cup�r� le json, en faire un objet javascript et en faire un affichage ?

    Code JavaScript : 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
    // Example Objet en json
    var TestlinkJson = {"id_source":"7315f47dba65515fca60c851d7065bc6","url_source":"http:\/\/news.yahoo.com\/s\/afp\/20060822\/od_afp\/chinacateringcultureoffbeat_060822074830","title_source":"Jail-theme teahouse becomes prisoner of own success in China - Yahoo! News","smartlinks_infos":[{"id_dest":"75effc69e8c68b389c65c67119463312","score":"126","deleted":"0","date":"1164279208","zone_cible":"151","manually_added":"0","url_dest":"http:\/\/news.yahoo.com\/s\/afp\/20060825\/od_afp\/malaysiahealthtoilets_060825160532","title_dest":"Malaysia calls for \"toilet revolution\" - Yahoo! News"}]} 
     
    //fonction de construction de SmartLinks
    function TestLink(url_source,title_source,id_source)
    {
    	this.url_source = url_source; //l'url du document source du SmartLinks
    	this.title_source = title_source; // titre du doc source du SmartLinks
    	this.id_source = id_source; //l'id de la source du SmartLinks
    	this.smartlinks_info = new array; //tableau de liens cible avec info sur la zone, la date etc...
     
     
    }
     
    var TestLink = eval('(' + TestlinkJson + ')');
     
    alert(TestLink);

  2. #2
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    �tudiant
    Inscrit en
    F�vrier 2006
    Messages
    2 532
    D�tails du profil
    Informations personnelles :
    �ge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 2 532
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    // Example Objet en json
    var TestlinkJson = {"id_source":"7315f47dba65515fca60c851d7065bc6","url_source":"http:\/\/news.yahoo.com\/s\/afp\/20060822\/od_afp\/chinacateringcultureoffbeat_060822074830","title_source":"Jail-theme teahouse becomes prisoner of own success in China - Yahoo! News","smartlinks_infos":[{"id_dest":"75effc69e8c68b389c65c67119463312","score":"126","deleted":"0","date":"1164279208","zone_cible":"151","manually_added":"0","url_dest":"http:\/\/news.yahoo.com\/s\/afp\/20060825\/od_afp\/malaysiahealthtoilets_060825160532","title_dest":"Malaysia calls for \"toilet revolution\" - Yahoo! News"}]}
    Ce code g�n�re d�j� un objet...

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    174
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 174
    Par d�faut
    Citation Envoy� par FremyCompany
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    // Example Objet en json
    var TestlinkJson = {"id_source":"7315f47dba65515fca60c851d7065bc6","url_source":"http:\/\/news.yahoo.com\/s\/afp\/20060822\/od_afp\/chinacateringcultureoffbeat_060822074830","title_source":"Jail-theme teahouse becomes prisoner of own success in China - Yahoo! News","smartlinks_infos":[{"id_dest":"75effc69e8c68b389c65c67119463312","score":"126","deleted":"0","date":"1164279208","zone_cible":"151","manually_added":"0","url_dest":"http:\/\/news.yahoo.com\/s\/afp\/20060825\/od_afp\/malaysiahealthtoilets_060825160532","title_dest":"Malaysia calls for \"toilet revolution\" - Yahoo! News"}]}
    Ce code g�n�re d�j� un objet...
    certes mais il m'est demand� d'utiliser l'autre structure avant d'afficher

  4. #4
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    �tudiant
    Inscrit en
    F�vrier 2006
    Messages
    2 532
    D�tails du profil
    Informations personnelles :
    �ge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 2 532
    Par d�faut
    Bon, pour r�sumer, ton objet "testJSONLink" c'est d�j� la valeur que tu voulais attribuer � testLink

    Il poss�de d�j� les propri�t�s "id_source", ...

    Pour faire ce que tu veux faire, tu dois transformer en String le tout
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    // Example Objet en json
    var TestlinkJson = '{"id_source":"7315f47dba65515fca60c851d7065bc6","url_source":"http:\/\/news.yahoo.com\/s\/afp\/20060822\/od_afp\/chinacateringcultureoffbeat_060822074830","title_source":"Jail-theme teahouse becomes prisoner of own success in China - Yahoo! News","smartlinks_infos":[{"id_dest":"75effc69e8c68b389c65c67119463312","score":"126","deleted":"0","date":"1164279208","zone_cible":"151","manually_added":"0","url_dest":"http:\/\/news.yahoo.com\/s\/afp\/20060825\/od_afp\/malaysiahealthtoilets_060825160532","title_dest":"Malaysia calls for \"toilet revolution\" - Yahoo! News"}]}';
    Mais ca n'a aucun int�r�t

    eval est remplac� par le code qu'il recoit donc si tu fais
    c'est parfaitement identique � sauf que ca prend plus de temps...

  5. #5
    Membre confirm�
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    174
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 174
    Par d�faut
    Citation Envoy� par FremyCompany
    Bon, pour r�sumer, ton objet "testJSONLink" c'est d�j� la valeur que tu voulais attribuer � testLink

    Il poss�de d�j� les propri�t�s "id_source", ...

    Pour faire ce que tu veux faire, tu dois transformer en String le tout
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    // Example Objet en json
    var TestlinkJson = '{"id_source":"7315f47dba65515fca60c851d7065bc6","url_source":"http:\/\/news.yahoo.com\/s\/afp\/20060822\/od_afp\/chinacateringcultureoffbeat_060822074830","title_source":"Jail-theme teahouse becomes prisoner of own success in China - Yahoo! News","smartlinks_infos":[{"id_dest":"75effc69e8c68b389c65c67119463312","score":"126","deleted":"0","date":"1164279208","zone_cible":"151","manually_added":"0","url_dest":"http:\/\/news.yahoo.com\/s\/afp\/20060825\/od_afp\/malaysiahealthtoilets_060825160532","title_dest":"Malaysia calls for \"toilet revolution\" - Yahoo! News"}]}';
    Mais ca n'a aucun int�r�t

    eval est remplac� par le code qu'il recoit donc si tu fais
    c'est parfaitement identique � sauf que ca prend plus de temps...
    Voila ma solution dis moi ce que tu en penses

    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
    // Example Objet en json
    var TestlinkJson = {"id_source":"7315f47dba65515fca60c851d7065bc6","url_source":"http:\/\/news.yahoo.com\/s\/afp\/20060822\/od_afp\/chinacateringcultureoffbeat_060822074830","title_source":"Jail-theme teahouse becomes prisoner of own success in China - Yahoo! News","smartlinks_infos":[{"id_dest":"75effc69e8c68b389c65c67119463312","score":"126","deleted":"0","date":"1164279208","zone_cible":"151","manually_added":"0","url_dest":"http:\/\/news.yahoo.com\/s\/afp\/20060825\/od_afp\/malaysiahealthtoilets_060825160532","title_dest":"Malaysia calls for \"toilet revolution\" - Yahoo! News"}]} 
     
    //fonction de construction de SmartLinks
    // notice we're now using JSON as the init data
    function TestLink(json_init)
    {
    	// init data is used from the init object, e.g. json_init.property
    	this.url_source = json_init.url_source; //l'url du document source du SmartLinks
    	this.title_source = json_init.title_source; // titre du doc source du SmartLinks
    	this.id_source = json_init.id_source; //l'id de la source du SmartLinks
    	// notice Array() -- you need to use the proper constructor 
    	// to actually create an array
    	this.smartlinks_info = new Array(); //tableau de liens cible avec info sur la zone, la date etc...
     
     
    }
     
    // note I changed the name of the instance var to avoid confusion
    var testLinkInstance = new TestLink(TestlinkJson);
     
    // this will alert saying '[Object]' or something similar, 
    // since you are attempting to alert with an entire object
    alert(testLinkInstance.title_source);

  6. #6
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    �tudiant
    Inscrit en
    F�vrier 2006
    Messages
    2 532
    D�tails du profil
    Informations personnelles :
    �ge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 2 532
    Par d�faut
    Ca me semble bon

  7. #7
    Membre confirm�
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    174
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 174
    Par d�faut
    Citation Envoy� par FremyCompany
    Ca me semble bon
    seul petit b�mol je n'utilise pas la methode eval pour transf�rer mon json dand mon objet JS ensuite quand je fais des alertes pour voir si l'objet JS final a bien incorpor� les donn�es transmises, je n'arrive pas afficher celle qui dans le json etait contenu dans un array!


    ceci ne fonctionne pas:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    alert(testLinkInstance.smartlinks_infos[id_dest]);
    alors que ceci fonctionne

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    alert(testLinkInstance.url_source);

  8. #8
    Membre �prouv�
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    89
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 89
    Par d�faut
    J'ai l'impression que tu r�inventes la roue (en l'occurence, JSON)

    Si tu fais :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    var TestlinkJson = {"id_source":"7315f47dba65515fca60c851d7065bc6","url_source":"http:\/\/news.yahoo.com\/s\/afp\/20060822\/od_afp\/chinacateringcultureoffbeat_060822074830","title_source":"Jail-theme teahouse becomes prisoner of own success in China - Yahoo! News","smartlinks_infos":[{"id_dest":"75effc69e8c68b389c65c67119463312","score":"126","deleted":"0","date":"1164279208","zone_cible":"151","manually_added":"0","url_dest":"http:\/\/news.yahoo.com\/s\/afp\/20060825\/od_afp\/malaysiahealthtoilets_060825160532","title_dest":"Malaysia calls for \"toilet revolution\" - Yahoo! News"}]}
    tu peux ensuite utiliser, sans aucune fonction, sans aucun eval :

    = "7315f47dba65515fca60c851d7065bc6"
    ou encore

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    TestlinkJson.smartlinks_infos[0].id_dest
    = "75effc69e8c68b389c65c67119463312"

    (NB : Tu as mis un objet dans ton Array, il faut donc le "s�lectionner", via "[0]")

  9. #9
    Membre confirm�
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    174
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 174
    Par d�faut
    Citation Envoy� par JulienC
    J'ai l'impression que tu r�inventes la roue (en l'occurence, JSON)

    Si tu fais :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    var TestlinkJson = {"id_source":"7315f47dba65515fca60c851d7065bc6","url_source":"http:\/\/news.yahoo.com\/s\/afp\/20060822\/od_afp\/chinacateringcultureoffbeat_060822074830","title_source":"Jail-theme teahouse becomes prisoner of own success in China - Yahoo! News","smartlinks_infos":[{"id_dest":"75effc69e8c68b389c65c67119463312","score":"126","deleted":"0","date":"1164279208","zone_cible":"151","manually_added":"0","url_dest":"http:\/\/news.yahoo.com\/s\/afp\/20060825\/od_afp\/malaysiahealthtoilets_060825160532","title_dest":"Malaysia calls for \"toilet revolution\" - Yahoo! News"}]}
    tu peux ensuite utiliser, sans aucune fonction, sans aucun eval :

    = "7315f47dba65515fca60c851d7065bc6"
    ou encore

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    TestlinkJson.smartlinks_infos[0].id_dest
    = "75effc69e8c68b389c65c67119463312"

    (NB : Tu as mis un objet dans ton Array, il faut donc le "s�lectionner", via "[0]")
    merci en effet il y a une grande redondance mais je ne fais qu'executer ce qui m'est demand�!

    En fait le json object tel qu'il est explicit� dans mon code est simplement l� pour tester des affichages Javascript etc...

  10. #10
    Membre confirm�
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    174
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 174
    Par d�faut
    J'ai l'impression que tu r�inventes la roue (en l'occurence, JSON)

    Un truc que je suis en train de clarifier parce que en effet j'ai l'impression de faire des trucs pas forc�ment utile pour atteindre mon but...

    je dois coder du JS pour effectuer des traitements sur un objet TestObjet dont les valeurs des atributs proviennent d'une base MySQL et elles arrivent donc via un api php sous forme de text Json...

    je me rend compte que pour cr�er mon objet JS je n'ai plus besoin de le construire avec une fonction constructeur. J'ai juste � faire un TestObjet = eval( jsontext); l'objet testobjet prend directement la structure qui lui est transmise en Json?

    mais par contre si � ce JS qui recoit les donn�es via JSON je voulais ajouter des methodes particulieres par exemple pour l'affichage... devrais je quand meme utiliser une fonction constructeur avec l'objetjson en parametre par exemple?

  11. #11
    Membre chevronn�
    Inscrit en
    Novembre 2006
    Messages
    336
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 336
    Par d�faut
    Salut,

    Ok pour �valuer JSON, mais :

    -Ou on est absolument sur des �lements qui transitent
    -Ou on v�rifie la pr�sence par exemple, tu mots "function" dans le texte re�u.

  12. #12
    Membre confirm�
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    174
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 174
    Par d�faut
    Citation Envoy� par Shinuza
    Salut,

    Ok pour �valuer JSON, mais :

    -Ou on est absolument sur des �lements qui transitent
    -Ou on v�rifie la pr�sence par exemple, tu mots "function" dans le texte re�u.
    c'est une question?

  13. #13
    Membre confirm�
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    174
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 174
    Par d�faut
    comment je fais pour afficher l'objet ainsi cr�� dans un tableau � deux cellules, les 3 pemieres propri�t�s s'affichanty dans une cellelule, et la e s'affichedans dans une autre cellule

  14. #14
    Membre chevronn�
    Inscrit en
    Novembre 2006
    Messages
    336
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 336
    Par d�faut
    Citation Envoy� par lekunfry
    c'est une question?
    Non c'est une affirmation, en l'occurence �val est fait sur du contenu sans aucune v�rification.

  15. #15
    Membre confirm�
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    174
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 174
    Par d�faut
    Citation Envoy� par Shinuza
    Non c'est une affirmation, en l'occurence �val est fait sur du contenu sans aucune v�rification.
    ohh ok je comprend now!

  16. #16
    Membre chevronn�
    Inscrit en
    Novembre 2006
    Messages
    336
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 336
    Par d�faut
    http://www.json.org/js.html

    En bas de cette page, tu as une mini lib qui permet de tester la pr�sence de code malveillant dans le json. A utilis� sur tu n'es pas sur de la provenance des donn�es.

  17. #17
    Membre confirm�
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    174
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 174
    Par d�faut
    Citation Envoy� par Shinuza
    http://www.json.org/js.html

    En bas de cette page, tu as une mini lib qui permet de tester la pr�sence de code malveillant dans le json. A utilis� sur tu n'es pas sur de la provenance des donn�es.
    merci pour ce lien tre stre sutile en effet!

  18. #18
    Membre confirm�
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    174
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 174
    Par d�faut
    Citation Envoy� par JulienC
    J'ai l'impression que tu r�inventes la roue (en l'occurence, JSON)

    Si tu fais :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    var TestlinkJson = {"id_source":"7315f47dba65515fca60c851d7065bc6","url_source":"http:\/\/news.yahoo.com\/s\/afp\/20060822\/od_afp\/chinacateringcultureoffbeat_060822074830","title_source":"Jail-theme teahouse becomes prisoner of own success in China - Yahoo! News","smartlinks_infos":[{"id_dest":"75effc69e8c68b389c65c67119463312","score":"126","deleted":"0","date":"1164279208","zone_cible":"151","manually_added":"0","url_dest":"http:\/\/news.yahoo.com\/s\/afp\/20060825\/od_afp\/malaysiahealthtoilets_060825160532","title_dest":"Malaysia calls for \"toilet revolution\" - Yahoo! News"}]}
    tu peux ensuite utiliser, sans aucune fonction, sans aucun eval :

    = "7315f47dba65515fca60c851d7065bc6"
    ou encore

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    TestlinkJson.smartlinks_infos[0].id_dest
    = "75effc69e8c68b389c65c67119463312"

    (NB : Tu as mis un objet dans ton Array, il faut donc le "s�lectionner", via "[0]")
    le pb c'est que l'objet tel qu'il est dans ce code n'y sera pas en fait je vais r�cup�rer une variable qui contiendra une string json g�n�r� par du PHP!

    c'est pour cela qu'� l'origine je fais un eval du bidule et avant de l'affecter � l'objet javascript que je vais r�ellement manipuler... dans le code en dure on ne verra pas smartlinksjson �crit de fa�on aussi lit�ral!

  19. #19
    Membre confirm�
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    174
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 174
    Par d�faut
    Voila ou j'en suis dans ma quete de l'affichage de mon objet js!

    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
    <script type="text/javascript">
    //Muck Up JSON object juste pour voir si notre et notre fonction fonctionne bien!
    var SmartLinklinkJson = {"id_source":"7315f47dba65515fca60c851d7065bc6","url_source":"http:\/\/news.yahoo.com\/s\/afp\/20060822\/od_afp\/chinacateringcultureoffbeat_060822074830","title_source":"Jail-theme teahouse becomes prisoner of own success in China - Yahoo! News","smartlinks_infos":[{"id_dest":"75effc69e8c68b389c65c67119463312","score":"126","deleted":"0"," dat e":"1164279208","zone_cible":"151","manually_added":"0","url_dest":"http:\/\/news.yahoo.com\/s\/afp\/20060825\/od_afp\/malaysiahealthtoilets_060825160532","title_dest":"Malaysia calls for \"toilet revolution\" - Yahoo! News"}]};
     
    // La fonction eval crée un objet JS à partir d'un string json qui sera affiché et utilisé pour traitements ultérieurs!
    var SmartLink = eval(SmartLinklinkJson); 
     
    //alert(SmartLink.smartlinks_infos[0].id_dest);
     
    // la fonction d'affichage récupere l'objet smartlinks comme élément du DOM
    function affichage(){
    var afficheur=document.getElementById('Smartlinks'); 
     
    // Création d'un tableau avec toutes les propriétés du SmartLinks
    var Props=new Array('id_source', 'url_source', 'title_source', 'smartlinks_infos')
     
    //Création du Tableau en DOM
    var tableauSL=document.createElement('table')
    var slBody=document.createElement('tbody')
     
    //Boucle qui parcour l'ensemble de l'objet smartlinks afin d'afficher ses propriétés dans le tableau créé
    for (i=0;i<Props.length;i++){
     
    //Création d'un élément TR dans le DOM, correspondant à 1 objet SmartLinks
    var smartlinksline=document.createElement('tr')
     
    //Boucle de remplissage des deux cellules de la TR créée
    for(j=0;j<2;j++){
    var cellule=document.createElement('td')
    cellule.innerHTML=(j==0)?Props[i]:SmartLink[Props[i]];
    smartlinksline.appendChild(cellule)
    }
    slBody.appendChild(smartlinksline)
    }
    tableauSL.appendChild(slBody)
    document.body.appendChild(tableauSL)
    }
    </script>
    </head>
    <body onload="displaySmartLinks()">
    <div id_source='1' url_source='2' title_source='3' smartlinks_infos='4' id='Smartlinks'>
    Le test smartlink en affichage brut et sans complex!
    </div>
    </body>
     
    </html>

    j'arrive pas � comprendre pourquoi je n'arrive pas � obtenir ceci!
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <table>
    <tr>
    <td>
    Title_Source <br />
    URL_Source<br />
    </td>
    <td>
    smartlinks_info[0].id_dest <br />
    smartlinks_info[0].url_dest</br />
    </td>
    </tr>
    <table>

  20. #20
    Membre �prouv�
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    89
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 89
    Par d�faut
    Je crois toujours que tu t'emm�le les pinceaux au niveau du JSON.
    Le format JSON a comme int�r�t de pouvoir avec une notation simple enregistrer des infos plus complexes (Objets, tableaux, etc...), �a apparemment, tu g�re (le JSON que tu as �crit est bien).
    L'autre int�r�t est de pouvoir le traiter aussi simplement en JS � l'aide de eval() (C'est l� que les probl�mes commencent pour toi ).

    Exemple :
    = JSON

    = String

    Pour passer du string � un objet, utilises eval().
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    var obj = eval("{'test': 'toto'}");
    obj est maintenant un objet JS. Tu peux utiliser ces attributs, tel obj.test (qui donne 'toto').
    Rien ne t'emp�che de lui ajouter des attributs ou des m�thodes :
    obj.id = 1234;
    ou
    obj.display = function() { ... }

    Si tu as bien suivi, soit tu utilises :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    var SmartLink = {"id_source":"7315f47dba65515fca60c851d7065bc6","url_source":"http:\/\/news.yahoo.com\/s\/afp\/20060822\/od_afp\/chinacateringcultureoffbeat_060822074830","title_source":"Jail-theme teahouse becomes prisoner of own success in China - Yahoo! News","smartlinks_infos":[{"id_dest":"75effc69e8c68b389c65c67119463312","score":"126","deleted":"0"," dat e":"1164279208","zone_cible":"151","manually_added":"0","url_dest":"http:\/\/news.yahoo.com\/s\/afp\/20060825\/od_afp\/malaysiahealthtoilets_060825160532","title_dest":"Malaysia calls for \"toilet revolution\" - Yahoo! News"}]};
    soit (notes la pr�sence des guillemets) :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    //Muck Up JSON object juste pour voir si notre et notre fonction fonctionne bien!
    var SmartLinklinkJson = "{'id_source':'7315f47dba65515fca60c851d7065bc6','url_source':'http:\/\/news.yahoo.com\/s\/afp\/20060822\/od_afp\/chinacateringcultureoffbeat_060822074830','title_source':'Jail-theme teahouse becomes prisoner of own success in China - Yahoo! News','smartlinks_infos':[{'id_dest':'75effc69e8c68b389c65c67119463312','score':'126','deleted':'0',' dat e':'1164279208','zone_cible':'151','manually_added':'0','url_dest':'http:\/\/news.yahoo.com\/s\/afp\/20060825\/od_afp\/malaysiahealthtoilets_060825160532','title_dest':'Malaysia calls for \"toilet revolution\" - Yahoo! News'}]}";
     
    // La fonction eval crée un objet JS à partir d'un string json qui sera affiché et utilisé pour traitements ultérieurs!
    var SmartLink = eval(SmartLinklinkJson);
    mais surtout pas :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    //Muck Up JSON object juste pour voir si notre et notre fonction fonctionne bien!
    var SmartLinklinkJson = {"id_source":"7315f47dba65515fca60c851d7065bc6","url_source":"http:\/\/news.yahoo.com\/s\/afp\/20060822\/od_afp\/chinacateringcultureoffbeat_060822074830","title_source":"Jail-theme teahouse becomes prisoner of own success in China - Yahoo! News","smartlinks_infos":[{"id_dest":"75effc69e8c68b389c65c67119463312","score":"126","deleted":"0"," dat e":"1164279208","zone_cible":"151","manually_added":"0","url_dest":"http:\/\/news.yahoo.com\/s\/afp\/20060825\/od_afp\/malaysiahealthtoilets_060825160532","title_dest":"Malaysia calls for \"toilet revolution\" - Yahoo! News"}]};
     
    // La fonction eval crée un objet JS à partir d'un string json qui sera affiché et utilisé pour traitements ultérieurs!
    var SmartLink = eval(SmartLinklinkJson);
    qui ne donnera absolument rien !

    PS : juste pour info, innerHTML n'est pas conforme aux standards (il "pourrait" poser probl�mes sur certains navigateurs, comme Op�ra), il vaut mieux utiliser document.createTextNode(). Maintenant, si ce n'est que pour du texte, �a doit passer partout !

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. eval de json en retour d'ajax sous IE
    Par Isalyn dans le forum G�n�ral JavaScript
    R�ponses: 17
    Dernier message: 29/02/2012, 08h21
  2. Condition Eval Json Ajax
    Par fwdavy dans le forum jQuery
    R�ponses: 1
    Dernier message: 23/08/2011, 11h36
  3. R�ponses: 0
    Dernier message: 09/03/2010, 17h16
  4. validation JSON et eval
    Par highman dans le forum G�n�ral JavaScript
    R�ponses: 4
    Dernier message: 09/08/2007, 09h27
  5. [langage] eval
    Par Quaker dans le forum Langage
    R�ponses: 5
    Dernier message: 21/07/2004, 17h16

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