web-dev-qa-db-fra.com

Comment encoder un objet JavaScript en JSON?

Existe-t-il un bon moyen de coder un objet JavaScript en tant que JSON?

J'ai une liste de paires clé-valeur ... dont le nom provient d'une case à cocher et dont la valeur est true ou false selon que la case est cochée ou non:

var values = {};
$('#checks :checkbox').each(function() { values[this.name]=this.checked; }); 

Je souhaite transmettre ces valeurs à un objet JSON afin de stocker dans un cookie le rendu d'une table (des colonnes seront ajoutées en fonction de ce que l'utilisateur coche).

Est-ce que quelqu'un connaît une solution?

58
daniel langer

Je pense que vous pouvez utiliser JSON.stringify :

// after your each loop
JSON.stringify(values);
114
mimiz

Tous les principaux navigateurs incluent désormais le codage/décodage JSON natif.

// To encode an object (This produces a string)
var json_str = JSON.stringify(myobject); 

// To decode (This produces an object)
var obj = JSON.parse(json_str);

Notez que seules les données JSON valides seront codées. Par exemple:

var obj = {'foo': 1, 'bar': (function (x) { return x; })}
JSON.stringify(obj) // --> "{\"foo\":1}"

Les types JSON valides sont les suivants: objets, chaînes, nombres, tableaux, true, false et null.

Quelques ressources JSON:

28
vezult