我需要将对象序列化为JSON。我正在使用jQuery。是否有“标准”方法来做到这一点?
我的具体情况:我有一个如下所示的数组:
var countries = new Array();
countries[0] = 'ga';
countries[1] = 'cd';
...
我需要将其转换为字符串以传递给$ .ajax(),如下所示:
$.ajax({
type: "POST",
url: "Concessions.aspx/GetConcessions",
data: "{'countries':['ga','cd']}",
...
答案 0 :(得分:6)
您可以使用JSON.stringify(countries);
var c = {
countries: countries
}
$.ajax({
type: "POST",
url: "Concessions.aspx/GetConcessions",
data: JSON.stringify(c),
contentType: "application/json"
...
请注意,您需要指定contentType
;否则,假定为URI编码。
答案 1 :(得分:1)
您可以使用JSON.stringify()
将任何对象转换为JSON字符串:
var countries = new Array();
countries[0] = 'ga';
countries[1] = 'cd';
var json = JSON.stringify({ countries: countries}); // = '{"countries":["ga","cd"]}'
// or more simply:
var countries = [ 'ga', 'cd' ];
var json = JSON.stringify({ countries: countries}); // = '{"countries":["ga","cd"]}'
但是,您应该注意,为data
$.ajax
提供一个对象的$.ajax({
type: "POST",
url: "Concessions.aspx/GetConcessions",
data: {
'countries': countries
}
});
属性是更好的做法,因为jQuery将为您创建JSON并同时转义任何对象无效字符并执行任何所需的编码。试试这个:
{{1}}
答案 2 :(得分:0)
您可以使用JSON.parse()将对象转换为json
像这样 countries = JSON.parse(countries);对象在json中转换并存储在country变量
中