JS对象序列化成json数据和json数据转化为JS对象的代码

JS对象序列化成json数据:

function Serialize(obj){

switch(obj.constructor){

case Object:

var str = "{";

for(var o in obj){

str += o + ":" + Serialize(obj[o]) +",";

}

if(str.substr(str.length-1) == ",")

str = str.substr(0,str.length -1);

return str + "}";

break;

case Array:

var str = "[";

for(var o in obj){

str += Serialize(obj[o]) +",";

}

if(str.substr(str.length-1) == ",")

str = str.substr(0,str.length -1);

return str + "]";

break;

case Boolean:

return "\"" + obj.toString() + "\"";

break;

case Date:

return "\"" + obj.toString() + "\"";

break;

case Function:

break;

case Number:

return "\"" + obj.toString() + "\"";

break;

case String:

return "\"" + obj.toString() + "\"";

break;

}

}

var staff_list_obj ={};

var staff_id = 1001;

staff_list_obj[staff_id] = {};

staff_list_obj[staff_id]["姓名"] = '111';

staff_list_obj[staff_id]["测试"] = '222';

alert(Serialize(staff_list_obj));

JS对象序列化为JSON对象的方法二

var $ = $ || {};

/**

* 将JS对象序列化为JSON字符串

* @param {Mixed} o The variable to decode

* @return {String} The JSON string

* String json = $.encode(o);

*/

$.encode = (function() {

if ( typeof(JSON)!=='undefined' && typeof(JSON.stringify)!=='undefined') {

return JSON.stringify;

}

var I = !!{}.hasOwnProperty, _ = function(I) {

return I < 10 ? "0" + I : I;

}, A = {

"\b" : "\\b",

"\t" : "\\t",

"\n" : "\\n",

"\f" : "\\f",

"\r" : "\\r",

"\"" : "\\\"",

"\\" : "\\\\"

};

return (function(C) {

if (typeof C == "undefined" || C === null) {

return "null";

} else {

if (Object.prototype.toString.call(C) === "[object Array]") {

var B = ["["], G, E, D = C.length, F;

for (E = 0; E < D; E += 1) {

F = C[E];

switch (typeof F) {

case "undefined" :

case "function" :

case "unknown" :

break;

default :

if (G) {

B.push(",");

}

B.push(F === null ? "null" : $.encode(F));

G = true;

}

}

B.push("]");

return B.join("");

} else {

if ((Object.prototype.toString.call(C) === "[object Date]")) {

return "\"" + C.getFullYear() + "-" + _(C.getMonth() + 1) + "-" + _(C.getDate()) + "T" + _(C.getHours()) + ":" + _(C.getMinutes()) + ":" + _(C.getSeconds()) + "\"";

} else {

if (typeof C == "string") {

return "\"" + C.replace(/([\x00-\x1f\\"])/g, function(B, _) {

var I = A[_];

if (I) {

return I;

}

return '';

}).replace(/[^\u0000-\u00FF]/g, function($0) {

return escape($0).replace(/(%u)(\w{4})/gi, "\\u$2")

}) + "\"";

} else {

if (typeof C == "number") {

return isFinite(C) ? String(C) : "null";

} else {

if (typeof C == "boolean") {

return String(C);

} else {

B = ["{"], G, E, F;

for (E in C) {

if (!I || C.hasOwnProperty(E)) {

F = C[E];

if (F === null) {

continue;

}

switch (typeof F) {

case "undefined" :

case "function" :

case "unknown" :

break;

default :

if (G) {

B.push(",");

}

B.push($.encode(E), ":", $.encode(F));

G = true;

}

}

}

B.push("}");

return B.join("");

}

}

}

}

}

}

});

})();

json数据转化为JS对象:

var jsonString={....}/[....];

eval("var obj="+jsonString);

alert(obj);

写道

function evalJSON(json){

var obj = null;

try {

obj = eval("(" + json + ")");

} catch(E){}

return obj ;

}

以上是 JS对象序列化成json数据和json数据转化为JS对象的代码 的全部内容, 来源链接: utcz.com/z/346619.html

回到顶部