Serializando um objeto para JSON

211

Como posso serializar um objeto para JSON em JavaScript?

maxaposteriori
fonte

Respostas:

52

Baixe https://github.com/douglascrockford/JSON-js/blob/master/json2.js, inclua e faça

var json_data = JSON.stringify(obj);
Johannes Weiss
fonte
1
Eu realmente preciso incluir "json2.js"? Parece funcionar sem ele.
Pavel Alexeev 31/03
32
@PavelAlexeev Não, você não precisa json2.jsmais incluir , a menos que esteja direcionando navegadores muito antigos: os navegadores modernos incluem uma implementação nativa do JSONobjeto. A coisa boa json2.jsé que ele só será ativado se nenhum objeto nativo for encontrado. Consulte [ stackoverflow.com/questions/891299/… para obter informações detalhadas sobre o suporte ao navegador.
Edurne Pascual
4

Apenas para mantê-lo compatível com versões anteriores, carrego a biblioteca JSON Crockfords da cloudflare CDN, se nenhum suporte JSON nativo for fornecido (para simplificar o uso do 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
fonte