在 jQuery 中序列化为 JSON

2022-08-29 22:03:48

我需要将对象序列化JSON。我正在使用jQuery。有没有一种“标准”的方法可以做到这一点?

我的具体情况:我有一个数组定义如下图所示:

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

我需要把它变成一个字符串来传递给$.ajax(),如下所示:

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

答案 1

JSON-js - JSON in JavaScript.

要将对象转换为字符串,请使用 :JSON.stringify

var json_text = JSON.stringify(your_object, null, 2);

要将 JSON 字符串转换为对象,请使用 :JSON.parse

var your_object = JSON.parse(json_text);

它最近由John Resig推荐:

...请开始将使用 JSON 的应用程序迁移到 Crockford 的 json2.js。它与 ECMAScript 5 规范完全兼容,如果存在本机(更快!)实现,则会优雅地降级。

事实上,我昨天刚刚在jQuery中进行了一项更改,该更改利用了JSON.parse方法(如果存在),现在它已被完全指定。

我倾向于相信他在JavaScript问题上所说的话:)

所有现代浏览器(以及许多不古老的旧浏览器)都本机支持JSON对象。当前版本的Crockford的JSON库将仅定义并且如果它们尚未定义,则保留任何浏览器本机实现不变。JSON.stringifyJSON.parse


答案 2

我已经使用jquery-json6个月了,它效果很好。它使用起来非常简单:

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

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