Qt Json類 對 long long int 類型的支持

項目中遇到一個巨大的BUG,原因是Qt的json類QJsonDocument在將服務器返回來的json串轉換成json對象QJsonObject時,出現了問題。也就是當long long int 類型的整型作爲json字段時,該值很可能超過QJsonValue所支持的範圍。
例如,如果在服務器返回的json串中,有一個字段是整型(long long), 那麼在轉換的時候可能出錯。
即 
{
"Id": 9150609557008089,
"name": "張三"
}
將該json串轉換成json對象,id值會出現溢出。
{
"Id": 9150609557008088,
"name": "張三"
}
再將該值id傳回服務器去取數據,自然取不到數據或得到垃圾數據。


Qt幫助文檔其實有明確的說明:


解決辦法: 使用字符串。json串中的數值使用字符串,將能大大提高處理能力。

同時這也是一個啓示: 即在json串中儘量使用字符串來傳遞值。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章