javascript
下载 嵌入式qt实战教程pdf_Qt之JSON教程-实战篇
實戰一:發送JSON網絡請求
作為JSON老大哥的QJsonValue自知對面的大戶人家妹子貌美如花,心里已經打起算盤,先下手為強,后下手遭殃。決定顯示下自己的家底,想起這件事,老大哥回想到5年前錯過的妹子,當時妹子說我們不適合,大哥問,我對你還不夠好么。但妹子說了一句讓老大哥徹底傷心的話。做我的男朋友要有QQ會員,可惜你不是。
老大哥找了QNetworkAccessManager以json的方式發送自己的QQ會員和賬號,以表明自己的誠意。
QJsonArray jsonArray; jsonArray<<1<<2<<3;QJsonObject jsonObject; jsonObject["account"] = "xxxxx"; jsonObject["vip"] = "8"; jsonObject["array"] = jsonArray;QNetworkAccessManager manager; QNetworkRequest request(QUrl("https://www.example.com")); request.setRawHeader("Content-Type", "application/json");QNetworkReply* reply = manager.post(request, QJsonDocument(jsonObject).toJson()); QEventLoop eventLoop; QObject::connect(reply, SIGNAL(finished()), &eventLoop, SLOT(quit())); eventLoop.exec(); // 進入等待返回,但ui事件循環依然進行。QByteArray result = reply->readAll(); qDebug()<<result;躲著墻角的二哥QJsonObject看到了老大哥的一舉一動,暗暗竊喜,還好我也是QQ會員,于是在發送數據處做了些小修改以彰顯自己的QQ會員等級。
QNetworkReply* reply = manager.post(request, R"({"account": "xxxxx","vip": "8","array": [1, 2, 3]})");看起來簡單明了,妹子肯定是我的了。二哥,心里暗暗竊喜。
螳螂捕蟬黃雀在后,三弟QJsonArray手拿銀子默念,大哥和二哥都不讓下弟弟的,盡是QQ會員,還好我不賴,昨天問了爹爹拿錢充了vip8。三弟也發自己的QQ會員過去了,只是方式略有個性。
QNetworkReply* reply = manager.post(request, "{"account":"xxxxx","vip":"8","array":[1,2,3]}");三兄弟按照昨天約定的時間到村口客棧見面。看到妹子趕緊走上前表示自己的QQ會員等級有多高,大哥還沒說出話來就被大妹子打斷了,說你裝載JSON數據麻煩!轉頭又說二哥雖然簡潔,但過于占地方。三弟自然看到面前這么兇惡的妹子,自然不敢說話低著頭說,數據反斜杠轉義過多,不利于數據操作。
三兄弟非常灰心,原來QQ會員也幫不到我了。
實戰二:讀寫json格式的配置文件
老大哥垂頭喪氣說,QQ會員也沒有用了呀,仍了可惜,不如我們埋了它,當是埋葬我們逝去的青春。二哥三弟聽后感動得不要不要的,就趕緊拿了家里祖傳的鏟子挖泥了。他們將QQ信息放(寫)在一個叫config.json的酒壺里。
QJsonObject jsonObject; jsonObject["account"] = "xxxxx"; jsonObject["password"] = "xxxxx" jsonObject["vip"] = "8"; QJsonArray jsonArray { 1, 2, 3 };jsonObject["array"] = jsonArray; QFile file("config.json"); if (! file.open(QIODevice::WriteOnly)) {qDebug()<<"文件打開失敗。";return false; }QByteArray data = QJsonDocument(jsonObject).toJson(); file.write(data); file.close();一天晚上管家拿著鏟子在挖泥,手里捧著他們三兄弟前幾天放的青春。管家碎碎念說了一句,終于拿到你們的QQ了,還是會員。
QFile file("config.json"); if (! file.open(QIODevice::ReadOnly)) {qDebug()<<"文件打開失敗。";return false; }QByteArray data = file.readAll(); QJsonParseError jsonError; QJsonDocument jsonDoc = QJsonDocument::fromJson(data, &jsonError); if (jsonError.error != QJsonParseError::NoError) {qDebug()<<"Json文件解析錯誤。";return false; }if (jsonDoc.isObject()) {QJsonObject jsonObject = jsonDoc.object();qDebug()<<jsonObject; } else if (jsonDoc.isArray()) {QJsonArray jsonArray = jsonDoc.array();qDebug()<<jsonArray; } else {qDebug()<<"Json文件解析為空。"; }file.close();- 文章首發于微信公眾號:Qt君
總結
以上是生活随笔為你收集整理的下载 嵌入式qt实战教程pdf_Qt之JSON教程-实战篇的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 二十、MySQL之用户权限管理(用户管理
- 下一篇: JavaScript+ Canvas开发