The as_int() method typecasts to 32 bits, so even though the reader reads 64-bit numbers correctly, there is no way to get them out.
There is an easy fix for this, just make a copy of as_int (in both places) in JSONNode.h, rename it to as_int64, and change "json_int_t" to "long long" everywhere it occurs.
Unfortunately, this isn't exactly a real solution, because FetchNumber in internalJSONNode line 223 converts every number to floating point on the way in, and then the wrappers convert them back. So this starts to lose precision for large 64-bit integers. However, this is probably something you want to fix anyway, since its is rather inefficient and happens to every integer on the way in.