QJsonObject构建指定的JSON结构

news2025/1/20 5:09:46

        如今我们生活处处用到AI,AI 带给了我们很多方便,但作为程序员我们,虽然不能开发什么 AI,但时不时需要调用国内四大平台的AI接口。很多平台接口都是用JSON作为数据载体传送。

如下接口数据 ,有些人不知道怎么构建。

1,我们先以QJsonObject 构建 "messages": [ {"role": "user","content": "你好"}] 为例。

#include <QJsonArray>
#include <QJsonObject>

// 创建一个QJsonObject实例
QJsonObject jsonObject;

// 创建一个QJsonArray用于存放messages
QJsonArray messagesArray;

// 为messages数组添加一个对象
QJsonObject messageObject;
messageObject.insert("role", QJsonValue("user"));
messageObject.insert("content", QJsonValue("介绍一下北京"));

// 将该对象添加到数组中
messagesArray.append(messageObject);

// 将messages数组放入jsonObject
jsonObject.insert("messages", messagesArray);

// 现在jsonObject包含了所需的结构
// 可以进一步处理这个json对象,比如转换为字符串或者发送到网络等
QString jsonString = QJsonDocument(jsonObject).toJson(QJsonDocument::Compact);

2,分析代码

        这段代码首先定义了一个QJsonObject󠁪,然后创建了一个QJsonArray󠁪来存储多条消息。接着,为每条消息创建了一个QJsonObject󠁪,并设置了"role"和"content"键值对。最后,将消息对象加入到数组中,并将这个数组添加到最外层的json对象里。这样就构建出了你所需要的JSON结构。

3,返回文章第一个问题。

很简单,只要在// 将该对象添加到数组中
messagesArray.append(messageObject);后面接着构建

#include <QJsonArray>
#include <QJsonObject>

// 创建一个QJsonObject实例
QJsonObject jsonObject;

// 创建一个QJsonArray用于存放messages
QJsonArray messagesArray;

// 为messages数组添加一个对象
QJsonObject messageObject;
messageObject.insert("role", QJsonValue("user"));
messageObject.insert("content", QJsonValue("介绍一下北京"));

QJsonObject messageObject2;
messageObject2.insert("role", QJsonValue("user"));
messageObject2.insert("content", QJsonValue("北京,简称“京”,古称燕京、北平,中华民族的发祥地之一,是中华人民共和国首都、直辖市、国家中心城市、超大城市,也是国务院批复确定的中国政治中心、文化中心、国际交往中心、科技创新中心,中国历史文化名城和古都之一,世界一线城市。\n\n北京被世界城市研究机构评为世界一线城市,联合国报告指出北京市人类发展指数居中国城市第二位。北京市成功举办夏奥会与冬奥会,成为全世界第一个“双奥之城”。北京有着3000余年的建城史和850余年的建都史,是全球拥有世界遗产(7处)最多的城市。\n\n北京是一个充满活力和创新精神的城市,也是中国传统文化与现代文明的交汇点。在这里,你可以看到古老的四合院、传统的胡同、雄伟的长城和现代化的高楼大厦交相辉映。此外,北京还拥有丰富的美食文化,如烤鸭、炸酱面等,以及各种传统艺术表演,如京剧、相声等。\n\n总的来说,北京是一个充满魅力和活力的城市,无论你是历史爱好者、美食家还是现代都市人,都能在这里找到属于自己的乐趣和归属感。"));

//....
//....
// 将该对象添加到数组中
messagesArray.append(messageObject);
// 将该对象添加到数组中
messagesArray.append(messageObject2);
//......

// 将messages数组放入jsonObject
jsonObject.insert("messages", messagesArray);
//...
//这里可以增加其他字段,非数组
jsonObject.insert("xx", "xx");

// 现在jsonObject包含了所需的结构
// 可以进一步处理这个json对象,比如转换为字符串或者发送到网络等
QString jsonString = QJsonDocument(jsonObject).toJson(QJsonDocument::Compact);

总结:是不是很简单。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1682044.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[C++核心编程-08]----C++类和对象之运算符重载

&#x1f3a9; 欢迎来到技术探索的奇幻世界&#x1f468;‍&#x1f4bb; &#x1f4dc; 个人主页&#xff1a;一伦明悦-CSDN博客 ✍&#x1f3fb; 作者简介&#xff1a; C软件开发、Python机器学习爱好者 &#x1f5e3;️ 互动与支持&#xff1a;&#x1f4ac;评论 &…

黑马guli商城项目初始化-SpringCloud微服务项目初始化使用SpringCloudAlibaba快速搭建分布式系统

视频教程&#xff1a;https://www.bilibili.com/video/BV1np4y1C7Yf?p4&spm_id_frompageDriver&vd_source0b3904471b2f8a3a133e05bd42f729a9 这里写目录标题 1.服务架构图2.初始化目录结构3.初始化数据库4.使用逆向工程项目生成数据库CRUD5.创建工具项目6.配置mybati…

CentOS7使用Docker安装Redis图文教程

1.拉取Redis镜像 这里制定了版本&#xff0c;不指定默认latest最新版 docker pull redis:6.0.8提示信息如下即为下载成功 2.上传配置文件 官方配置文件&#xff08;找自己对应的版本&#xff09;&#xff1a;reids.conf 或者将如下配置文件命名为redis.conf&#xff0c;上…

面试题草稿

目录 一&#xff0e;JAVA基础 1.八个基本数据类型&#xff0c;长&#xff0c;占几个字节&#xff0c;取值范围是多少。 基本类型&#xff1a; 2.面向对象的特征 1. 封装&#xff08;Encapsulation&#xff09; 3.实现多态的几种方式 4.什么叫装箱什么叫拆箱 5.装拆箱分别…

Nginx启动关闭重启用脚本实现

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff0c;这篇文章男女通用&#xff0c;看懂了就去分享给你的码吧。 Nginx(“engine x”…

快手截流多功能协议引流多线程多账号使用

在市场上&#xff0c;类似的软件售价都在几千元&#xff0c;但我发现这款全新版本的软件已经更新&#xff0c;而且我只需要配合使用谷歌浏览器&#xff0c;稍微调慢一点延时&#xff0c;我就可以像专业人士一样流畅地进行操作。 评论对于我而言是一种艺术&#xff0c;而不仅仅是…

植物大战僵尸杂交版(含下载方式)

最近时间&#xff0c;一款很火的植物大战僵尸杂交版火爆出圈&#xff0c;在玩家之间疯狂扩散。各种奇特的杂交组合让游戏变得更加有趣。 游戏介绍 植物大战僵尸杂交版是一款将《植物大战僵尸》和植物杂交概念结合在一起的独特塔防策略游戏。它将《植物大战僵尸》中的植物与进行…

【算法】二分查找——在排序数组中查找元素的第一个和最后一个位置

本节博客主要是通过“在排序数组中查找元素的第一个和最后一个位置”总结关于二分算法的左右界代码模板&#xff0c;有需要借鉴即可。 目录 1.题目2.二分边界算法2.1查找区间左端点2.1.1循环条件2.1.2求中点的操作2.1.3总结 2.2查找区间右端点2.1.1循环条件2.1.2求中点的操作2.…

FebHost:为什么企业需要注册保加利亚.BG域名?

在当今全球化的商业环境中&#xff0c;对于与保加利亚市场息息相关的企业而言&#xff0c;选择合适的域名至关重要。.BG域名作为企业在线身份的重要组成部分&#xff0c;提供了多重利好&#xff0c;成为业内不容忽视的战略资源。 首先&#xff0c;地域标识性强是.BG域名的一大…

ArrayList和LinkedList的使用

ArrayList List<> list new ArrayList<>(); LinkedList

深入理解 House of Cat

Index 序言利用 FSOP 调用 House of Cat利用条件伪造IO流条件完整调用链分析 模板System (one_gadget) 模板ORW模板 Demo & Exp利用 __malloc_assert 调用 House of Cat例题&#xff1a;题目思路Exp 序言 原文章&#xff1a;深入理解 House of Cat 随着 GNU 持续不断的更…

【Linux-IMX6ULL-DDR3简介测试-RGBLCD控制原理】

目录 1. DDR3 简介1.1 前要基本概念RAM & ROM 2. DDR3测试及初始化3. RGBLCD简介及控制原理3.1 RGBLCD简介3.2 RGBLCD-时序-像素时钟-显存3.2.1 RGB LCD时序3.2.2 像素时钟&#xff08;800*400分辨率&#xff09;3.2.2 显存&#xff08;800*400分辨率&#xff09; 3.3 RGBL…

Spring注解解析:条件注解@Condition注解和@ConditonOnXXX注解

文章目录 一、条件注解二、Conditional1、使用方法2、示例 一、条件注解 条件注解的作用是给需要装载的Bean增加一个条件判断。只有满足条件才会装在到IoC容器中。而这个条件可以由自己去完成的&#xff0c;可以通过重写Condition接口重写matches()方法去实现自定义的逻辑。所…

.NET 分享一款Web打包和解压缩工具

01本文概要 在.NET部署环境中&#xff0c;利用IIS中间件开启对ASP的支持&#xff0c;可以实现许多强大的文件操作功能。特别是在一些需要进行预编译的情况下&#xff0c;通过上传ASP脚本&#xff0c;可以获得WebShell&#xff0c;从而方便地进行各种操作。本文将介绍一个名为S…

运动耳机怎么选?五款新手必买的运动耳机盘点

运动耳机是专为运动爱好者设计的耳机&#xff0c;轻巧便携&#xff0c;佩戴稳固。无论你在跑步、健身还是骑行&#xff0c;它都能为你带来优质的音乐体验。那如何选择一款合适的运动耳机呢&#xff1f;这里&#xff0c;我结合自己和身边朋友平时选购经验&#xff0c;整理了一些…

sklearn机器学习编程练习大全(二)

sklearn机器学习编程练习大全&#xff08;二&#xff09; 第11题 从字符串提取标签第12题 IRIS数据集探索第13题 构建模型&#xff0c;计算准确率第14题 预估目标列编码第15题 one-hot编码 第11题 从字符串提取标签 DataFrame如下&#xff1a; 如何将以上的DataFrame变成如下的…

python批量生成25位数字字母混合序列号(SN码)

欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一.前言 二.代码 三.使用 四.分析 一.前言 SN码,即Serial Number的缩写,有时也被称为Serial No,是产品序列号的意思。它是一个独特的标识符,用于区分同一种类

第二证券资讯|昨夜,黄金大涨、美股创新高!人民币狂拉

受降息预期影响&#xff0c;美股三大指数团体创新高&#xff0c;黄金期现价格亦大幅走高。 当地时间5月15日星期三&#xff0c;美股三大股指全线收涨。道指涨0.88%&#xff0c;纳指涨1.40%&#xff0c;标普500指数涨1.17%。 经济数据方面。美国4月CPI同比上涨3.4%&#xff0c…

每日一练 2025.5.16

题目&#xff1b; 给定一个非负整数&#xff0c;你至多可以交换一次数字中的任意两位。返回你能得到的最大值。 示例 1 : 输入: 2736 输出: 7236 解释: 交换数字2和数字7。示例 2 : 输入: 9973 输出: 9973 解释: 不需要交换。注意: 给定数字的范围是 [0, 108] 解题&#…

首战告捷!KCM Trade漂移队出征2024日本漂移锦标赛(FDJ2)

卓越之姿&#xff0c;非凡之势&#xff01;KCM Trade漂移队以实力点燃激情 当激情与速度交织&#xff0c;当硝烟四起的战场转移到赛车领域&#xff0c;我们见证了一场精彩绝伦、实力与策略并存的较量——KCM Trade漂移队在2024日本漂移锦标赛&#xff08;FDJ2&#xff09;上展现…