Sérialisation d'un objet en JSON

211

Comment sérialiser un objet en JSON en JavaScript?

maxaposteriori
la source

Réponses:

52

Téléchargez https://github.com/douglascrockford/JSON-js/blob/master/json2.js, incluez-le et faites

var json_data = JSON.stringify(obj);
Johannes Weiss
la source
1
Dois-je vraiment besoin d'inclure "json2.js"? Il semble fonctionner sans lui.
Pavel Alexeev
32
@PavelAlexeev Non, vous ne devez json2.jsplus inclure , sauf si vous ciblez des navigateurs très anciens: les navigateurs modernes incluent une implémentation native de l' JSONobjet. La bonne chose à ce sujet json2.jsest qu'il ne démarrera que si aucun objet natif n'est trouvé. Voir [ stackoverflow.com/questions/891299/… pour une ventilation détaillée de la prise en charge du navigateur.
Edurne Pascual
4

Juste pour la garder rétrocompatible, je charge la bibliothèque JSON Crockfords à partir de CDN cloudflare si aucun support JSON natif n'est fourni (pour plus de simplicité avec jQuery):

function winHasJSON(){
  json_data = JSON.stringify(obj);
  // ... (do stuff with json_data)
}
if(typeof JSON === 'object' && typeof JSON.stringify === 'function'){
  winHasJSON();
} else {
  $.getScript('//cdnjs.cloudflare.com/ajax/libs/json2/20121008/json2.min.js', winHasJSON)
}
AvL
la source