js实现对json数据的序列化(兼容ie6以上浏览器)
Posted 人生梦想起飞
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js实现对json数据的序列化(兼容ie6以上浏览器)相关的知识,希望对你有一定的参考价值。
/**
* 增加对JSON数据的序列化方法,
* 主要用于IE6、7不支持JSON对象的浏览器
*/
var xue = xue || {};
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 ? "]" : "}");
}
};
/*
* method : parse(json string)
* return : js原生值
*/
xue.json.parse = function(jsonString) {
if (window.JSON) {
return window.JSON.parse(s);
}
//使用到了jquery的parseJSON(s)方法
return $.parseJSON(jsonString);
};
使用方法:
var _json = {
"js_58":[‘a‘,‘b‘],
"js_39":[‘a‘,‘b‘,‘c‘],
"js_68":[‘a‘]
}
将json对象_json序列化:
xue.json.stringify(_json);
注意:如果ajax传参是json数据对象时,最好将json对象先序列化
以上是关于js实现对json数据的序列化(兼容ie6以上浏览器)的主要内容,如果未能解决你的问题,请参考以下文章
有趣的Javascript:只需一个JS让万恶的IE5IE6IE7IE8全都支持H5原生Canvas绘图(有演示demo)