Qt Socket Server 收发JSON
2012 年 9 月 15 日
int TcpServerRecvImage::CreateRespondInfoJson(QByteArray *respondInfoJson, const QByteArray &recvJsonData, const int writeFileRet) { //使用QJsonDocument判断字节流能否转成Json对象 QJsonParseError jsonError; QJsonDocument jsonRecvData(QJsonDocument::fromJson(recvJsonData, &jsonError));
if(jsonError.error != QJsonParseError::NoError) { qDebug() << "parse json error!"; return -1; } //通过QsonDocument将字节流转为Json对象 QJsonObject rootObject = jsonRecvData.object(); //向Json对象中追加数据 rootObject.insert("Result","FAIL");
if(0 == writeFileRet) { //修改对应数据;可以思考下是如何实现修改前与修改后数据所占空间不同 rootObject["Result"] = "SUCCESS"; } //将Json对象转换为字节流 QJsonDocument documentJson; documentJson.setObject(rootObject); QByteArray bytearrayJson = documentJson.toJson();
respondInfoJson->clear(); respondInfoJson->append(bytearrayJson);
return 0; }
int TcpServerRecvImage::WriteLogLevelToFileJson(const QString &filePathName, const int logLevel) { //Qt文件操作 QFile f(filePathName); if(!f.open(QIODevice::WriteOnly | QIODevice::Text)) { qDebug() << "Open failed."; return -1; }
// create JSON Object QJsonObject logLevelJson; logLevelJson.insert("logLevel",QString::number(logLevel));
QJsonDocument documentJson; documentJson.setObject(logLevelJson); QByteArray bytearrayJson = documentJson.toJson(); //使用QTextStream,简化文件操作 QTextStream txtWrite(&f); txtWrite << bytearrayJson;
f.close();
return 0;}