我需要将对象序列化为 JSON。我正在使用 jQuery。是否有 “标准” 方法来做到这一点?
我的具体情况:我有一个定义如下所示的数组:
var countries = new Array();
countries[0] = 'ga';
countries[1] = 'cd';
...
我需要将其转换为字符串以传递给$.ajax()
如下所示:
$.ajax({
type: "POST",
url: "Concessions.aspx/GetConcessions",
data: "{'countries':['ga','cd']}",
...
JSON-js - JavaScript 中的 JSON。
要将对象转换为字符串,请使用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.stringify
和JSON.parse
如果它们尚未定义),则保留任何浏览器本机实现。
我一直在使用jquery-json 6 个月,效果很好。它使用起来非常简单:
var myObj = {foo: "bar", "baz": "wockaflockafliz"};
$.toJSON(myObj);
// Result: {"foo":"bar","baz":"wockaflockafliz"}