J'ai une méthode qui envoie une demande ajax. Lorsque la réponse du serveur est reçue, je dois sérialiser et désérialiser ultérieurement.
$.ajax({
//.....
done(function(data) {
//1 Need to serialize data (which is an array)
});
function myFunction() {
//2 Need to de-serialize data which has been serialized
}
Je sais que je pourrais utiliser jquery#serializeArray()
si j'avais un formulaire à sérialiser:
$( "form" ).submit(function( event ) {
console.log( $( this ).serializeArray() );
event.preventDefault();
});
Mais je n’ai pas de formulaire et les données du serveur (je suppose) n’ont rien à voir avec serializeArray
fonction de jquery
. Alors, comment puis-je le faire? Quel est l'un des meilleurs moyens?
De préférence, n'utilisez aucune bibliothèque tierce, à l'exception de jQuery, ni même du tout.
Réponses:
1 pour la réponse № 1Le moyen courant de sérialiser les objets JS en JSON est via JSON.stringify()
.
L’inverse est via JSON.parse()
.
o={"firstName":"john","lastName":"doe"};
console.log(JSON.stringify(o));
console.log(JSON.parse(JSON.stringify(o)));
Voir MDN pour corder et analyser
Voici une Violon.
.serializeArray () de jQuery est seulement une fonction utile pour sérialiser les données de formulaire. Il construit ses objets à partir de la base. Voici la la source pour ça. Si vous souhaitez soumettre vos données en tant que JSON
, vous simplement
$.ajax({
type: "POST",
url: url,
data: JSON.stringify(data),
success: success,
dataType: dataType
});
Libre après jQuery.post ().