网站搜索

javascript - 为特定组件修改 JSON.stringify()


我有一个 React 组件状态,里面包含许多不同的类,需要被 stringify()。大多数组件在放入 JSON 对象之前需要特殊处理。我认为使用 replacer() 和 if 语句检查类型然后修改输出会太麻烦。除非创建一个自定义解析系统,否则有没有办法自定义 stringify() 的解析方式?

这个想法是在每个类中都有一个自定义函数(例如 toString()),当解析器到达该类时,不是遍历键值对,而是调用该函数并将其附加到 JSON 对象中。

答案#1

根据 JSON.stringify 的描述,如果值有一个 toJSON() 方法,它负责定义将被序列化的数据。

使用

JSON.stringify({ toJSON() {return {a: 'eureka'}}})