Ayant croisé dernièrement quelques posts sur le forum concernant le passage de json en paramètre d'ajax ou simplement la transformation d'un string en objet json je vous propose ci après une alternative au traditionnel :
myjson=eval('('+stringjson+')')
On peut en passant par le DOM évaluer un string json sans eval
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
| <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Nouvelle page 1</title>
<script type="text/javascript">
stringjson="{one:'coucou'}"
function StringToJSON(str,nom){
script=document.createElement('script')
script.type="text/javascript"
script.defer="defer"
if(document.all){
script.text="window['"+nom+"']="+str}
else{
script.appendChild( document.createTextNode( "window['"+nom+"']="+str ) );
}
document.getElementsByTagName('head')[0].appendChild(script)
}
</script>
</head>
<body onload="StringToJSON(stringjson,'myjson');alert(myjson.one)">
</body>
</html> |
Partager