将普通对象转化为JSON对象

本文介绍了一个用于将JavaScript对象转换为JSON字符串并将其解析回对象的函数。通过具体实例展示了如何使用该函数进行数据序列化及反序列化,并验证了转换的正确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<script type="text/javascript">
function toJSONString(obj, indent) {
var re, indent;
// "||"用法
indent = indent || "";
switch (typeof(obj)) {
// 数值,布尔,函数
case "number" :
case "boolean" :
case "function" :
return (String(obj));
break;
// 字符串特殊符号处理
case "string" :
return ("\""
+ obj.replace(/([\"\'])/g, "\\$1").replace(/\r/, "\\r")
.replace(/\n/, "\\n").replace(/\t/, "\\t") + "\"");
break;
// 对象的转化
case "object" :
switch (obj.constructor) {
case Date :
return ("new Date(\"" + obj.toUTCString() + "\"))");
break;
case RegExp :
return ("(new RegExp(\""
+ String(obj.source.replace(/(\w)/g, "\\$l")
+ "\",\"" + (obj.global ? "g" : "")
+ (obj.ignoreCase ? "i" : "")
+ obj.multiline ? "m" : "") + "\"))");
break;
case Array :
re = new Array();
for (var i = 0; i < obj.length; i++) {
re.push(toJSONString(obj[i]));
}
return ("[" + re.join(",") + "]");
break;
default :
re = new Array();
for (var i in obj)
re.push(indent + "\t" + toJSONString(i, "\t" + indent)
+ ":" + toJSONString(obj[i], "\t" + indent));
return ("{\r\n" + re.join(",\r\n") + "\r\n" + indent + "}");

break;
}
}
}
// 测试
var obj = new Object();
obj.sb = "caonima";
obj.nb = "caoniba";
obj.func = function() {
alert("caonima");
}
var str = toJSONString(obj);
// 将JSON字符串转为对象
eval("newObj=" + str);
alert(newObj.sb);
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值