
巧妙解决json.stringify序列化循环引用难题
使用JSON.stringify序列化对象时,循环引用(对象属性包含自身引用)会导致无限循环和错误。本文提供一种利用replacer函数有效解决此问题的方案。
JSON.stringify的第二个参数replacer函数允许自定义序列化过程。我们可以利用map对象追踪已访问的对象,避免重复序列化。
在replacer函数中,检查Map是否已包含当前对象。如果已包含,则说明存在循环引用,可以返回NULL或其他标记值,从而中断循环。 这确保了JSON.stringify能够顺利完成序列化过程,避免错误发生。