问题

我需要将对象序列化为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 推荐:

...PLEASE start migrating your JSON-using applications over to Crockford's json2.js. It is fully compatible with the ECMAScript 5 specification and gracefully degrades if a native (faster!) implementation exists.

In fact, I just landed a change in jQuery yesterday that utilizes the JSON.parse method if it exists, now that it has been completely specified.

我倾向于信任他在JavaScript上说的话:)

较新的浏览器支持 JSON对象.目前版本的Crockford的JSON库只会定义 JSON.stringify JSON.parse (如果尚未定义),任何浏览器原生实现完好无损.




相关问题推荐