针对特定组件修改JSON.stringify()
我有一个 React 组件状态,其中包含许多需要 stringify() 的不同类。大多数组件都需要经过特殊处理才能放入 JSON 对象中。我相信使用 replacer() 和 if 语句来检查类型然后修改输出会太麻烦。除了创建自定义解析系统之外,有没有办法自定义 stringify() 解析的内容?
这个想法是在每个类中都有一个自定义函数(例如 toString()),当解析器到达类时,而不是通过键值对,将调用该函数并将其附加到 JSON 对象。
回答
来自JSON.stringify 描述
如果值有 toJSON() 方法,它负责定义将序列化的数据。
用法
JSON.stringify({ toJSON() {return {a: 'eureka'}}})