4 ms·
Not as useful as it could be since it has special syntax that isn't supported in JSON where not having 64-bit ints is one of the bigger issues. https://webappl
by spullara 9y ago
Not as useful as it could be since it has special syntax that isn't supported in JSON where not having 64-bit ints is one of the bigger issues.
https://webapplog.com/decreasing-64-bit-tweet-id-in-javascript/ https://webapplog.com/decreasing-64-bit-tweet-id-in-javascri...
The JSON use case was even one of the motivations behind BigInt in the first place:
https://twitter.com/sampullara/status/981634718964707328 https://twitter.com/sampullara/status/981634718964707328
- Cthulhu_ 9y agoProbably best to represent long numbers as strings in json; json doesn't support a lot of JS's features.
- daxterspeed 9y agoWhile there's a few gotchas, rolling your own JSON parser isn't necessarily a ton of work. Or perhaps a proposal could be written to give numbers emitted by JSON.parse a "raw" property, so they could be decoded using BigInt?
- elmigranto 9y agoNo need for custom parser. Right now, you can use custom format with reviver and serializer functions (2nd arg to serialize / parse). Say, have them serialize as string `^bigint[\d]+$` and revive appropriately.
- daurnimator 9y agoBut the point is to support large numbers with the traditional syntax. e.g. so that {"foo": 1234567890123456789012345678901234567890} doesn't lose precision.
- elmigranto 9y agoGiven that `int + bigint` throws in JS, this exact thing will never happen imo, otherwise, you can't differentiate between types. Maybe something like `{"x": 10n}`, but at that point, might as well do reviver, especially if you already agreed on a format and use some to parse out class instances vs plain objects.