覆盖 Json.stringify 以使用 json-stringify-safe
Overriding Json.stringify to use json-stringify-safe
我想覆盖 JSON.stringify 以使用 json-stringify-safe 模块以避免出现循环错误。
这是我的代码:
(function () {
const getSerialize = require('json-stringify-safe');
const stringifyCore = JSON.stringify;
JSON.stringify = (obj, replacer, spaces, cycleReplacer) => {
return stringifyCore.apply(this, [obj, getSerialize(replacer, cycleReplacer), spaces]);
};
}());
我也试过了:
const getSerialize = require('json-stringify-safe');
const stringifyCore = JSON.stringify;
JSON.stringify = function (obj, replacer, spaces, cycleReplacer) {
return stringifyCore(obj, getSerialize(replacer, cycleReplacer), spaces);
};
我收到一个错误:
Maximum call stack size exceeded
此处计划的解决方案对我不起作用..
有什么想法吗?
第一个问题通过将 getSerialize 函数的要求更改为 :
来解决
const {getSerialize} = require('json-stringify-safe');
现在,我有另一个问题,我希望在我的所有应用程序中应用它,但它似乎不起作用,因为我继续收到此错误:
Converting circular structure to Json
我想这就是你想要的。
(function () {
const {getSerialize} = require('json-stringify-safe');
const _stringify = JSON.stringify;
JSON.stringify = (obj, replacer, spaces, cycleReplacer) =>
_stringify(obj, getSerialize(replacer, cycleReplacer), spaces);
}());
库的重点是使用它而不是基本 JSON.stringify()
函数。根据 the code 判断,它在内部已经使用了 JSON.stringify
,所以我们想绕过它。
哦,刚刚发现我没有输入正确的文件。我在 webpack.config.js 上尝试过这个(这是一个 AngularJS 项目)。我将它移到我的 app.js 文件中并且它有效。
这是我在 App.js
中的解决方案
(function () {
const {getSerialize} = require('json-stringify-safe');
const stringifyCore = JSON.stringify;
JSON.stringify = function (obj, replacer, spaces, cycleReplacer) {
return stringifyCore(obj, getSerialize(replacer, cycleReplacer), spaces);
};
}());
我想覆盖 JSON.stringify 以使用 json-stringify-safe 模块以避免出现循环错误。
这是我的代码:
(function () {
const getSerialize = require('json-stringify-safe');
const stringifyCore = JSON.stringify;
JSON.stringify = (obj, replacer, spaces, cycleReplacer) => {
return stringifyCore.apply(this, [obj, getSerialize(replacer, cycleReplacer), spaces]);
};
}());
我也试过了:
const getSerialize = require('json-stringify-safe');
const stringifyCore = JSON.stringify;
JSON.stringify = function (obj, replacer, spaces, cycleReplacer) {
return stringifyCore(obj, getSerialize(replacer, cycleReplacer), spaces);
};
我收到一个错误:
Maximum call stack size exceeded
此处计划的解决方案对我不起作用..
有什么想法吗?
第一个问题通过将 getSerialize 函数的要求更改为 :
来解决const {getSerialize} = require('json-stringify-safe');
现在,我有另一个问题,我希望在我的所有应用程序中应用它,但它似乎不起作用,因为我继续收到此错误:
Converting circular structure to Json
我想这就是你想要的。
(function () {
const {getSerialize} = require('json-stringify-safe');
const _stringify = JSON.stringify;
JSON.stringify = (obj, replacer, spaces, cycleReplacer) =>
_stringify(obj, getSerialize(replacer, cycleReplacer), spaces);
}());
库的重点是使用它而不是基本 JSON.stringify()
函数。根据 the code 判断,它在内部已经使用了 JSON.stringify
,所以我们想绕过它。
哦,刚刚发现我没有输入正确的文件。我在 webpack.config.js 上尝试过这个(这是一个 AngularJS 项目)。我将它移到我的 app.js 文件中并且它有效。
这是我在 App.js
中的解决方案(function () {
const {getSerialize} = require('json-stringify-safe');
const stringifyCore = JSON.stringify;
JSON.stringify = function (obj, replacer, spaces, cycleReplacer) {
return stringifyCore(obj, getSerialize(replacer, cycleReplacer), spaces);
};
}());