3 ms·
Go can decode numbers losslessly as strings: https://pkg.go.dev/encoding/json#Number https://pkg.go.dev/encoding/json#Number json.Number is (almost) my “favori
by ncruces 1y ago
Go can decode numbers losslessly as strings: https://pkg.go.dev/encoding/json#Number https://pkg.go.dev/encoding/json#Number
json.Number is (almost) my “favorite” arbitrary decimal: https://github.com/ncruces/decimal?tab=readme-ov-file#decimal-arithmetic https://github.com/ncruces/decimal?tab=readme-ov-file#decima...
I'm half joking, but I'm not sure why S-expressions would be better here. There are LISPs that don't do arbitrary precision math.
- mise_en_place 1y agoFor actual SERDES, JSON becomes very brittle. It's better to use something like protobuf or cap'n'proto for such cases.
- eadmund 1y ago> Go can decode numbers losslessly as strings: https://pkg.go.dev/encoding/json#Number https://pkg.go.dev/encoding/json#Number Yup, and if you’re using JSON in Go you really do need to be using Number exclusively. Anything else will lead to pain. > I'm half joking, but I'm not sure why S-expressions would be better here. There are LISPs that don't do arbitrary precision math. Sure, but I’m referring specifically to https://www.ietf.org/archive/id/draft-rivest-sexp-13.html https://www.ietf.org/archive/id/draft-rivest-sexp-13.html, which only has lists and bytes, and so number are always just strings and it’s up to the program to interpret them.