解释:
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; }