I think you perhaps have two options here.
The first thing you can try is to change the the type to an integer, I would only expect doubles or floats to be treated in this way. (This should remove the e+ notation.) I.e. is it a timestamps in milliseconds since the Epoch?
The second thing would be to look at the API interface for writer a bit closer and possibly the writer.cpp source. I haven't had any direct experience with json-cpp, but out of curiosity looked at the source real quick, seems like it outputs to an ostream object. Not sure if you can supply the ostream or not, but it suggests that you may be able to set the output formatting on the ostream object.
For example, this code:
double testNum = 12323541245634262.0;
std::cout << "Number: " << testNum << std::endl;
will print:
Number: 1.23235e+016
However, this code:
double testNum = 12323541245634262.0;
std::cout << std::fixed << std::showpoint;
std::cout << std::setprecision(4);
std::cout << "Number: " << testNum << std::endl;
will print:
Number: 12323541245634262.0000
If you have access to a writer function or constructor that accepts an ostream object, you can create your file like this:
std::ofstream ofs ("test.json", std::ofstream::out);
ofs << std::fixed << std::showpoint;
ofs << std::setprecision(4);
Hope it helps.