1232 votes

La sérialisation JSON en jQuery

J'ai besoin de sérialiser un objet JSON. Je suis à l'aide de jQuery. Est-il une façon "standard" pour ce faire?

Ma situation spécifique: j'ai un tableau défini à quelque chose comme ceci:

var countries = new Array();
countries[0] = 'ga';
countries[1] = 'cd';
...

et j'ai besoin de transformer cela en une chaîne à transmettre à l' $.ajax() comme ceci:

$.ajax({
    type: "POST",
    url: "Concessions.aspx/GetConcessions",
    data: "{'countries':['ga','cd']}",
...

185voto

Jay Taylor Points 3262

J'ai été en utilisant jquery json pour 6 mois et il fonctionne très bien. C'est très simple à utiliser:

var myObj = {foo: "bar", "baz": "wockaflockafliz"};
$.toJSON(myObj);

// Result: {"foo":"bar","baz":"wockaflockafliz"}

101voto

pestatije Points 541

Fonctionne sur IE8+

Pas besoin de jQuery, utilisez:

JSON.stringify(countries); 

47voto

Tahir Akhtar Points 5843

Je ne l'ai pas utilisé, mais vous pourriez vouloir essayer le plugin jQuery écrit par Mark Gibson

Il ajoute que les deux fonctions: $.toJSON(value), $.parseJSON(json_str, [safe]).

37voto

Adam Bellaire Points 42797

Non, le standard pour sérialiser en JSON est d'utiliser une sérialisation JSON de la bibliothèque. Si vous ne voulez pas faire cela, alors vous allez avoir à écrire vos propres méthodes de sérialisation.

Si vous voulez des conseils sur la façon de le faire, je vous suggère de l'examen de la source de certaines bibliothèques.

EDIT: je ne vais pas sortir et de dire que l'écriture de votre propre serliazation méthodes est mauvais, mais vous devez prendre en compte que s'il est important pour votre application à utiliser bien formé JSON, alors vous avez à peser les frais généraux de un de plus dans la dépendance" à l'encontre de la possibilité que vos méthodes personnalisées peut un jour rencontrer un cas d'échec que vous n'aviez pas prévu. Si ce risque est acceptable est votre appel.

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