avoid loss of precision in JSON unmarshal