原生JavaScript实现JSON序列化与解析:兼容IE6与Chrome
作者:拾光时间:2026-10-27 14:23:40浏览:198
本文介绍如何使用原生JavaScript实现JSON对象的序列化与解析功能,无需依赖外部库。通过扩展Object原型添加toJSON方法,支持字符串、数字及嵌套对象的转换,并演示如何利用eval进行反向解析。该方案已在IE6和Chrome浏览器中通过测试,适用于需要轻量级JSON处理且对兼容性有较高要求的场景。
原生JavaScript JSON序列化与解析实现
具体实现代码如下所示:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="author" content="Nancle from CAU CS 101" />
<title>JSON序列化与解析(原生JS + Object对象拓展方法)【IE6和chrome测试通过】</title>
</head>
<script type="text/javascript">
定义一个示例对象ele,包含属性x、y和z,其中z为嵌套对象:
x:11,
y:'string',
z:{x:11, y:'string'}
}
为对象添加toJSON方法,用于将对象转换为JSON字符串格式:
var arr = [];
遍历对象中的每个键值对:
获取当前键对应的值value:
如果值为null或undefined,则将其替换为空字符串:
value = '';
否则,判断值类型是否为字符串或数字。如果是,则添加双引号包裹;如果是对象,则递归调用toJSON方法:
value = (typeof value === 'string' | typeof value === 'number')
? ('"' + value + '"') : toJSON(value);
}
构造键值对字符串,格式为"key":value,并推入数组:
arr.push(str);
}
将数组元素用逗号连接,并用大括号包裹,返回最终的JSON字符串:
}
调用toJSON方法将对象ele转换为字符串,并弹出提示框显示结果:
alert('装换成的字符串是: ' + str );
var ele2 = eval('(' + str + ')');
alert('解析字符串得到js对象: x=' + ele2.x + ',y=' + ele2.y + ',z=' + ele2.z);
</script>
<body>
</body>
</html>作者最新文章
JS处理含Emoji或中文的字符串转数组乱码问题
2026-11-05 16:12:28
JS怎么使用展开运算符合并对象
2026-11-05 14:42:18
ES6+环境下判断JS对象为空的简洁写法
2026-11-05 12:12:23
怎么通过replacer函数自定义JS中JSON的格式化输出
2026-11-05 11:19:44
JS正则表达式基础:字面量与RegExp构造函数的区别及常用元字符
2026-11-05 11:16:58
