当前位置: 首页 > news >正文

【接口封装】——21、解析Json对象数组的文本块

 解释:

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;
}

相关文章:

  • 为什么List、Set集合无法在遍历的时候修改内部元素
  • 添加 ChatGPT/Grok/Gemini 到浏览器搜索引擎
  • 無人機的應用程序有那些可以部署在linux server 系統
  • 解决 HTTP 请求中的编码问题:从乱码到正确传输
  • Qt-ZMQ的使用补充(pub-sub)
  • 工具介绍《Awsome-Redis-Rogue-Server 与 redis-rogue-server》
  • 硬件学习笔记--50 CAN相关基础知识介绍
  • Work【2】:PGP-SAM —— 无需额外提示的自动化 SAM!
  • 静态分析技术:Jadx-GUI高级用法与模式识别
  • 中国智能制造加速跑:创新与应用齐飞
  • Excel 保护工作簿:它能解决哪些问题?如何正确使用?
  • Git使用
  • RabbitMQ消息持久化与Lazy模式对比分析
  • 《第六章 终章》在VMware中进行UR10e机器人的手眼标定实验全过程(ur10e手眼标定实验实机演示)
  • 【第4章】项目实战-亿级电商系统需求分析
  • cocos webview与通信
  • 【第七节】windows sdk编程:Windows 中的对话框
  • 智慧校园综合安防系统建设方案
  • 项目-个人博客测试报告
  • 04自媒体文章-自动审核(阿里云自动审核文章和图片、服务降级处理、异步调用@Async、自管理敏感词DFA、OCR识别图片文字、文章详情-静态文件生成)
  • 俄官员说将适时宣布与乌克兰谈判代表
  • 检疫期缩减至30天!香港优化内地进口猫狗检疫安排
  • 一手实测深夜发布的世界首个设计Agent - Lovart。
  • 首映|奥斯卡最佳国际影片《我仍在此》即将公映
  • 一海南救护车在西藏无任务拉警笛开道,墨脱警方:已处罚教育
  • 世界期待中美对话合作带来更多确定性和稳定性