JSON数据的序列化方法
Posted 晓晓的天下
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSON数据的序列化方法相关的知识,希望对你有一定的参考价值。
ajax传参是json数据对象时,最好是将json对象先序列化
var stuAnswerTotal = examModule.touch.getData(‘examAnswer‘);
console.log(stuAnswerTotal);//Object对象如下
"val":["",‘""]
"val":[""]
var answer = {};
$.each(stuAnswerTotal,function(k,v){
answer[k] = v.val
});
var stuAnswer = xue.JSON.stringify(answer);//调用序列化方法
console.log(stuAnswer)// 序列化{"17072":[],"17073":[],"17074":["B"]}
/**
* 增加对JSON数据的序列化方法,
* 主要用于IE6、7不支持JSON对象的浏览器
*/
xue.json = xue.json || {};
xue.json.stringify = function(obj) {
//如果是IE8+ 浏览器(ff,chrome,safari都支持JSON对象),使用JSON.stringify()来序列化
if (window.JSON) {
return JSON.stringify(obj);
}
var t = typeof(obj);
if (t != "object" || obj === null) {
// simple data type
if (t == "string") obj = ‘"‘ + obj + ‘"‘;
return String(obj);
} else {
// recurse array or object
var n, v, json = [],
arr = (obj && obj.constructor == Array);
// fix.
var self = arguments.callee;
for (n in obj) {
v = obj[n];
t = typeof(v);
if (obj.hasOwnProperty(n)) {
if (t == "string") v = ‘"‘ + v + ‘"‘;
else if (t == "object" && v !== null)
// v = jQuery.stringify(v);
v = self(v);
json.push((arr ? "" : ‘"‘ + n + ‘":‘) + String(v));
}
}
return (arr ? "[" : "{") + String(json) + (arr ? "]" : "}");
}
};
以上是关于JSON数据的序列化方法的主要内容,如果未能解决你的问题,请参考以下文章