最近用到json格式存储数据。用的是jquery的ajax。
jquery将对象转换成json字符串方法。
jQuery.extend({
/** * @see 将javascript数据类型转换为json字符串 * @param 待转换对象,支持object,array,string,function,number,boolean,regexp * @return 返回json字符串 */
toJSON:
function
(object) {
var
type =
typeof
object;
if
(
'object'
== type) {
if
(Array == object.constructor) type =
'array'
;
else
if
(RegExp == object.constructor) type =
'regexp'
;
else
type =
'object'
;
}
switch
(type) {
case
'undefined'
:
case
'unknown'
:
return
;
break
;
case
'function'
:
case
'boolean'
:
case
'regexp'
:
return
object.toString();
break
;
case
'number'
:
return
isFinite(object) ? object.toString() :
'null'
;
break
;
case
'string'
:
return
'"'
+ object.replace(/(\\|\")/g, "\\$1
").replace(/\n|\r|\t/g, function () {
var a = arguments[0];
return (a == '\n') ? '\\n' : (a == '\r') ? '\\r' : (a == '\t') ? '\\t' : "
"
}) + '"
';
break
;
case
'object'
:
if
(object ===
null
)
return
'null'
;
var
results = [];
for
(
var
property
in
object) {
var
value = jQuery.toJSON(object[property]);
if
(value !== undefined) results.push(jQuery.toJSON(property) +
':'
+ value);
}
return
'{'
+ results.join(
','
) +
'}'
;
break
;
case
'array'
:
var
results = [];
for
(
var
i = 0; i < object.length; i++) {
var
value = jQuery.toJSON(object[i]);
if
(value !== undefined) results.push(value);
}
return
'['
+ results.join(
','
) +
']'
;
break
;
}
}
数据存储
$(
"#Button1"
).click(
function
() {
var
datalist = [];
//定义数组
for
(
var
i=0;i<100;i++){
datalist.push({
'name'
: i,
'number'
: i });
//添加数据
}
//ajax提交
$.ajax({
url:
'ajax/Calendar.ashx'
,
type:
'POST'
,
dataType:
'text'
,
data: {
"name"
: $.toJSON(datalist)
//将数组转换成json字符串
},
success:
function
(reslut) {
alert(reslut);
}
});
});
});
数据读取
$.ajax({
url:
'ajax/Calendar.ashx'
,
type:
'POST'
,
dataType:
'text'
,
data: {
year: $(
"#DropDownList1"
).val()
},
success:
function
(reslut) {
setcalendar(reslut);
}
});
function
setcalendar(reslut) {
var
json = eval(reslut);
//将字符串转换成json
for
(
var
i = 0; i < json.length; i++) {
alter(json.name);
//属性
}
}
原文链接http://www.cnblogs.com/ylws/archive/2011/04/01/2001889.html