解释:
1、封装内容:Json数组的数据处理
Json 数组: [ [ {"txt" : "你好"}, { "img", "1"} , {"txt" : "世界"} ], [ {"txt" : "你好"} ] ] 数组内的文本块: [ {"txt" : "你好"} ] 文本块内的片段:对应(key,value) {"txt" : "你好"}
函数定义:
#include <qjsonarray.h> #include <qjsonobject.h> #define BR "<br>" #define IMG "img" #define IMG_SRC "<img src='%1'/>" #define IMG_QRC "qrc:/Resources/MainWindow/emotion/" #define _PNG ".png" QString parseMsgFromJson(const QJsonArray& arr);
源代码:
QString MsgWebView::parseMsgFromJson(const QJsonArray & arr) { QString msg; for (int i = 0; i < arr.count(); i++) { QJsonArray blockArray = arr[i].toArray(); //获取 msg json数组中的文本块 for (int j = 0; j < blockArray.count(); j++) { QJsonObject obj = blockArray[j].toObject(); //获取文本块中的片段 QString key = obj.keys().at(0); //每个片段中的(key,value) if (key == TXT) { msg += obj[key].toString(); } else if(key == IMG){ QString value = QString(IMG_SRC).arg(IMG_QRC + obj[key].toString() + _PNG); msg += value; } }//文本块之间,用换行结束(<br>) msg += BR; }//浏览器会默认忽略末尾一个<br>标签 return msg; }