Error on managing BigInt fields

I have a TWebClientDataset with a LargeInt data fields. When I load the Dataset from JSON, the data are rounded.
I read that there is a max number for largeint in Javascript that corrisponding at "Number.MAX_SAFE_INTEGER".
Is there a mode for resolve this problem?
I need the largeint number in my dataset because those are Database unique ID and I can't modify them (UUID).
I have read there are additiional libraries for this in javascript, but need that Web Core must implement them for manage bigint in datasets, etc...
In attachment (3.0 MB)
a demo project.
Thanks in advance

Wow, that's a really annoying problem. Anytime you try to use JavaScript to parse JSON with a 64-bit number it rounds it to a 53-bit number?! Even the TJSON classes does this. How frustrating. One idea is to convert the JSON data beforehand so that the largeint values are strings. I'm sure there's likely a less-confusing and shorter regex for this, but I tried this out and it seemed to work out ok for the sample data that you have here. If you can get the source of the data to use a JSON string instead of a number that would be very much preferable of course.

tmpJSON := TJSJSON.ParseObject(StringReplace(StringReplace(StringReplace(StringReplace(StringReplace(StringReplace(tmpJSON,' ','',[rfReplaceAll]),chr(10),'',[rfReplaceAll]),':',':"',[rfReplaceall]),',','",',[rfReplaceAll]),'}",','"},',[rfReplaceAll]),'}]','"}]',[rfReplaceAll]));

The fields in your table would then need to be changed (temporarily at least) from LargeInt to String(20) so that the array can be loaded. You could convert them back to numbers after if you like, which may not be important as it isn't likely that you're doing much math on a UUID? But you have options here of course.