2012-10-02 66 views
1

我正在使用Qfile讀取JSON文件。將它存儲到一個Qstring對象中。在經過QStrin克對象Parser::parse(),它示出了編譯錯誤作爲函數parse()只接受QIODevice*const QByteArray&作爲第一個參數。將QString對象傳遞給Parser :: parse()時發生錯誤

確切的錯誤信息是:

no matching function for call to QJson::Parser::(QString,bool*) 

candidates are Qvariant QJson::Parser::parse(QIODevice*,bool*) 

note QVariant Qjson::Parser::parse(const QByteArray&,bool*) 

我試着投QStringQIODeviceQByteArray,但一切都是徒勞。

+0

你確定那是_exact_錯誤消息?第一行「沒有匹配函數調用QJson :: Parser::(QString,bool *)」看起來不對,肯定應該是'QJson :: Parser :: parse'?另外,爲了幫助解決編譯錯誤,請顯示代碼以及錯誤。 – rohanpm

回答

1

使用QString::toUtf8(),它轉換一個QStringQByteArray

+0

'QString :: toAscii()'只有在知道數據只包含ASCII字符時纔是正確的。它將銷燬非ASCII數據(例如中文,日文,韓文字符)。 JSON通常使用UTF8編碼,所以'QString :: toUtf8()'在這裏最有可能是正確的答案。 – rohanpm

+0

好點,更新了答案 – Chris

+0

後,我也無法運行一個Web服務和解析JSON。 PLIZ提供了一個示例代碼來運行webservice並閱讀json並解析它。其實這是我在Qt的第一個應用程序。 – user1715145