Default number precision in serialization QJsonDocument to text is only 6.
It mean's every number >= 10^6 is writed in exponential form with precision lost.
I can't see any reason for such limit. It can mess up various IDs for example.
Problem is in QJsonPrivate::Writer class.
It uses QByteArray::number function with default parameters and default precision is only 6...