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().
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 :
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) :
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 :
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 !
Partager