web-dev-qa-db-fra.com

Comment convertir une chaîne JSON en un objet JavaScript dans jQuery?

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?

32
Rob

Depuis jQuery 1.4.1, vous pouvez le faire en mode natif

jQuery.parseJSON

Voir documentation jQuery .

64
bumperbox

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);
7

que diriez-vous eval ()?

var obj = eval (jsonString);

2

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
1
Boris Guéry

Avez-vous regardé le plugin jquery-json ?

1
andi

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

0
knoopx