J'ai une chaîne dans ma base de données que je veux insérer dans ma page et convertir en objet JavaScript.
[
{id: 1,title: "Long Event",
start: new Date(2009, 5, 6, 14, 0),end: new Date(2009, 5, 11)},
{id: 2,title: "Repeating Event",
start: new Date(2009, 5, 2)},
{id: 3,title: "Meeting",
start: new Date(2009, 5, 20, 9, 0)},
{id: 4,title: "Click for Facebook",
start: new Date(2009, 5, 27, 16),end: new Date(2009, 5, 29),
url: "http://facebook.com/"}
]
Comment puis-je faire cela en utilisant jQuery?
Le script json2.js "officiel" comprend 2 méthodes: une qui analysera en toute sécurité toute chaîne JSON en un objet (JSON.parse) et une qui convertira un objet en une chaîne JSON (JSON.stringify)
Le script peut être trouvé ici .
Dans mon article ci-dessus, j'ai suggéré eval (), mais il existe en fait un moyen légèrement meilleur d'évaluer JSON (si vous ne voulez pas utiliser le script json2.js):
var obj = (new Function("return " + json))();
en utilisant le script json2.js:
var obj = JSON.parse(json);
que diriez-vous eval ()?
var obj = eval (jsonString);
Jetez un oeil à JQuery-json plugin
var thing = {plugin: 'jquery-json', version: 1.3};
var encoded = $.toJSON(thing); //'{"plugin": "jquery-json", "version": 1.3}'
var name = $.evalJSON(encoded).plugin; //"jquery-json"
var version = $.evalJSON(encoded).version; // 1.3
Avez-vous regardé le plugin jquery-json ?
utilisation
jQuery.getJSON(url, data, callback)
ou passez "json" comme paramètre type
:
jQuery.get (URL, données, rappel, type)
il en va de même pour:
jQuery.post (URL, données, rappel, type)
* tout au cas où vous récupérez la "chaîne" d'une demande ajax