68 votes

Comment coder un objet JavaScript en JSON ?

Existe-t-il un bon moyen d'encoder un objet JavaScript en JSON ?

J'ai une liste de paires clé-valeur... où le nom est celui d'une case à cocher, et la valeur est soit vraie soit fausse selon que la case est cochée ou non :

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

Je veux passer ces valeurs dans un objet JSON afin de les stocker dans un cookie pour rendre un tableau (les colonnes seront ajoutées en fonction de ce que l'utilisateur aura coché).

Quelqu'un connaît-il une solution ?

1 votes

Il n'y a rien de tel qu'un objet Json. Essayez-vous de sérialiser des valeurs dans json, ou essayez-vous de passer des valeurs dans un objet JavaScript ?

0 votes

Je veux pouvoir créer un fichier json pour stocker les valeurs des cases à cocher afin que les choix des utilisateurs soient enregistrés dans un cookie. Je suis nouveau dans le domaine du json et je ne sais pas ce que je veux.

128voto

mimiz Points 1014

Je pense que vous pouvez utiliser JSON.stringify :

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

1 votes

J'ai mis ceci dans un alert() mais rien n'apparaît

0 votes

@daniellanger - d'après votre commentaire, voici la réponse. Vous devrez faire un peu de débogage pour voir pourquoi les choses ne s'affichent pas.

0 votes

Alors comment puis-je sauvegarder cela dans un fichier/le stocker comme un cookie ?

33voto

vezult Points 3812

Tous les principaux navigateurs comprennent désormais un encodage/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 encodé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 de caractères, nombres, tableaux, true , false et null .

Quelques ressources JSON :

1 votes

Eh bien, ils sont appelés "objets" en javascript. Mais oui, les valeurs booléennes peuvent être représentées en JSON.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X