首页 > 文章列表 > 如何用JSON序列化和反序列化包含ES5和ES6箭头函数的对象?

如何用JSON序列化和反序列化包含ES5和ES6箭头函数的对象?

313 2025-03-27

如何用JSON序列化和反序列化包含ES5和ES6箭头函数的对象?

JSON序列化与反序列化:完美处理ES5和ES6函数

本文介绍一种方法,能够将包含ES5函数和ES6箭头函数的对象转换为JSON字符串,并在反序列化时完整恢复这些函数。

解决方案

我们将借助第三方库form-create来实现这一目标。该库提供两个关键函数:

  • toJson(obj, space): 将对象转换为JSON字符串,完整保留其中的函数。
  • parseJson(json, mode): 将JSON字符串解析回对象,并恢复其中的函数。

示例代码

const obj = {
  name: 'John',
  age: 30,
  greet: function () {
    console.log('Hello!');
  },
  arrow: (val) => {
    console.log('Value:', val);
  }
};

const jsonString = toJson(obj);
console.log(jsonString); // 输出包含函数信息的JSON字符串

const restoredObj = parseJson(jsonString);
console.log(restoredObj); // 输出已恢复函数的对象

优势

  • 兼容ES5函数和ES6箭头函数。
  • 完美保留函数的原始引用。
  • 使用便捷,易于集成到现有项目中。
来源:1740354283