|
|
|
|
|
by jbboehr
815 days ago
|
|
> FWIW JS does not have a similar capability so I can't add a note there This example on MDN seems to indicate that you can, am I misunderstanding it? const bigJSON = '{"gross_gdp": 12345678901234567890}';
const bigObj = JSON.parse(bigJSON, (key, value, context) => {
if (key === "gross_gdp") {
// Ignore the value because it has already lost precision
return BigInt(context.source);
}
return value;
});
[0]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe... |
|
The optional `context` parameter is a tc39 proposal. The feature compatibility matrix on the bottom of the MDN page is really confusing because it's showing only when `JSON.parse` was added, not whether the optional `context` parameter is supported.
I've confirmed it's available in:
But not available in: The original blog post linked to the proposal:https://tc39.es/proposal-json-parse-with-source/
https://github.com/tc39/proposal-json-parse-with-source
This issue links to the various browser engine tracking bugs:
https://github.com/tc39/proposal-json-parse-with-source/issu...
Which are:
• Chrome/V8: https://bugs.chromium.org/p/v8/issues/detail?id=12955
• Firefox/SpiderMonkey: https://bugzilla.mozilla.org/show_bug.cgi?id=1658310
• Safari/JavaScriptCore: https://bugs.webkit.org/show_bug.cgi?id=248031