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

变化型网站今日头条热搜

变化型网站,今日头条热搜,网站制作主题思路,全国疫情风险区域汇总📢博客主页:https://loewen.blog.csdn.net📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢本文由 丶布布原创,首发于 CSDN,转载注明出处🙉📢现…
  • 📢博客主页:https://loewen.blog.csdn.net
  • 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
  • 📢本文由 丶布布原创,首发于 CSDN,转载注明出处🙉
  • 📢现在的付出,都会是一种沉淀,只为让你成为更好的人✨

文章预览:

      • 一. JSON数据之间的转换
      • 二. JSON数据的压缩


一. JSON数据之间的转换

在Qt框架中,QJsonObjectQJsonDocumentQJsonArrayQByteArray 是处理JSON数据的核心类。它们之间的转换通常涉及序列化和反序列化过程。以下是如何在这些类之间进行转换的详细指导:

1、QJsonObjectQJsonDocument 的转换

  • QJsonObjectQJsonDocument
    QJsonDocument 可以用来包装一个 QJsonObjectQJsonArray,以便将其序列化为JSON格式的字符串或字节数组。
QJsonObject jsonObj;
// 填充 jsonObj ...
QJsonDocument jsonDoc(jsonObj);
  • QJsonDocumentQJsonObject
QJsonDocument jsonDoc = QJsonDocument::fromJson(someByteArray);
if (!jsonDoc.isNull() && jsonDoc.isObject()) {QJsonObject jsonObj = jsonDoc.object();

2、QJsonArrayQJsonDocument 的转换

  • QJsonArrayQJsonDocument
    QJsonObject 类似,QJsonDocument 也可以用来包装一个 QJsonArray
QJsonArray jsonArray;
// 填充 jsonArray ...
QJsonDocument jsonDoc(jsonArray);// 将QJsonObject添加到QJsonArray数组中
QJsonArray tasksArray
tasksArray.append(QJsonObject);
  • QJsonDocumentQJsonArray
    如果 QJsonDocument 包含的是一个 QJsonArray,你可以通过其 array() 方法来获取它。
QJsonDocument jsonDoc = QJsonDocument::fromJson(someByteArray);
if (!jsonDoc.isNull() && jsonDoc.isArray()) {QJsonArray jsonArray = jsonDoc.array();
}

3、QJsonDocument /QJsonObjectQByteArray 的转换

  • QJsonDocumentQByteArray:
    使用 QJsonDocumenttoJson() 方法可以将其序列化为一个 QByteArray
QJsonDocument jsonDoc;
// 填充 jsonDoc ...
QByteArray jsonByteArray = jsonDoc.toJson(QJsonDocument::Compact); // Compact 表示生成紧凑的JSON字符串,减小内存// 将QJsonObject转换为QByteArray
QJsonObject jsonInfo;
QByteArray algByte = QJsonDocument(jsonInfo).toJson();      // 查看单一模块数据
  • QByteArrayQJsonDocument
    使用 QJsonDocument::fromJson() 静态方法可以从一个 QByteArray 中解析出一个 QJsonDocument
QByteArray jsonByteArray;
// 填充 jsonByteArray ...
QJsonDocument jsonDoc = QJsonDocument::fromJson(jsonByteArray);

4、QByteArray 与其他类型的直接转换

QByteArray 通常不与 QJsonObject 或 QJsonArray 直接转换,而是通过与 QJsonDocument 的中介来实现。这是因为 QJsonObject 和 QJsonArray 是表示JSON数据结构的类,而 QByteArray 是表示字节序列的类。


二. JSON数据的压缩

以Halcon图像为例:

思路:将Halcon图像转换成QByteArray类型数据,然后使用QtqCompress方法进行压缩,再通过qUncompress解压。

压缩:

int main(){//导出任务过大  所以对图像进行裁剪压缩处理-20250222-lwHObject domain, RegionDifference, dilationRegion, modelImage, modelRegion;Difference(m_matchGraphicsData.m_Region.at(MODELCON), m_matchGraphicsData.m_Region.at(MODELEXC), 	&modelRegion);//膨胀一下,得到一些模板区域以外的图像,避免创建模板留下黑边DilationCircle(modelRegion, &dilationRegion, 30);   // 获取图像中模板以外的区域进行绘制GetDomain(m_matchGraphicsData.m_modelImage, &domain);Difference(domain, dilationRegion, &RegionDifference);PaintRegion(RegionDifference, m_matchGraphicsData.m_modelImage, &modelImage, 0, "fill");// 压缩图像数据MN_Commontools::serializeHImage(modelImage, imgStr);// 解压图像数据MN_Commontools::deSerializeHImage(imgStr, modelImage);
}
void MN_Commontools::serializeHImage(const HImage& _img, QString& _base64Str)
{HSerializedItem imgItem;Hlong _imgSize;imgItem = _img.SerializeImage();void* imgBegin = imgItem.GetSerializedItemPtr(&_imgSize);QByteArray ba;QBuffer buf(&ba);buf.setData((char*)imgBegin, _imgSize);int beginDataSize = ba.toBase64().size();//对图像进行压缩lwQByteArray compressedData = qCompress(ba, 9); // 直接压缩原始数据_base64Str = QString::fromLatin1(compressedData.toBase64()); // 将压缩后的数据转换为 Base64 编码的 QStringint qCompressDataSize = _base64Str.toBase64().size();
}

解压:

void MN_Commontools::deSerializeHImage(const QString& _base64Str, HImage& _img)
{QByteArray arr_base64 = _base64Str.toLatin1();int uncompressedDataSize = arr_base64.size();//20250224 对压缩图像进行解压lwQByteArray compressedData = QByteArray::fromBase64(arr_base64); // 将 Base64 编码的 QByteArray 解码为原始的压缩二进制数据QByteArray arr_default = qUncompress(compressedData); // 解压缩数据int uncompressedDataSize1 = arr_default.size();//兼顾未压缩的老任务,解压失败还是直接读取原任务if (arr_default.size() == 0)arr_default = QByteArray::fromBase64(arr_base64);char* charPtr = arr_default.data();int charSize = arr_default.length();HSerializedItem imgItem;try{imgItem.CreateSerializedItemPtr(charPtr, charSize, "true");_img.DeserializeImage(imgItem);}catch (const HException& e){//    INFO_VISION("%s,%s", e.ProcName().Text(), e.ErrorMessage().Text());}
}

注意:压缩后的QByteArray图像数据不能转换成QJsonObject 类型,否则会为空。


下雨天,最惬意的事莫过于躺在床上静静听雨,雨中入眠,连梦里也长出青苔。

文章转载自:
http://dinncoprognathic.tqpr.cn
http://dinncohowever.tqpr.cn
http://dinncoenjoy.tqpr.cn
http://dinncocarouse.tqpr.cn
http://dinncoisf.tqpr.cn
http://dinncobanda.tqpr.cn
http://dinncotinplate.tqpr.cn
http://dinncolongshoreman.tqpr.cn
http://dinncocotype.tqpr.cn
http://dinncooncidium.tqpr.cn
http://dinncoslimmish.tqpr.cn
http://dinncomultivalent.tqpr.cn
http://dinncosilvern.tqpr.cn
http://dinncophototroph.tqpr.cn
http://dinncoerythrocytosis.tqpr.cn
http://dinncoforeseer.tqpr.cn
http://dinncocellule.tqpr.cn
http://dinncolaniate.tqpr.cn
http://dinncosacristan.tqpr.cn
http://dinncoovermany.tqpr.cn
http://dinncoretrolingual.tqpr.cn
http://dinncosacring.tqpr.cn
http://dinncometallographic.tqpr.cn
http://dinncotone.tqpr.cn
http://dinncosuperseniority.tqpr.cn
http://dinncovintager.tqpr.cn
http://dinncoparget.tqpr.cn
http://dinncoserver.tqpr.cn
http://dinncosandal.tqpr.cn
http://dinncosilkworm.tqpr.cn
http://dinncoradiophare.tqpr.cn
http://dinncopotboy.tqpr.cn
http://dinncoidioplasmatic.tqpr.cn
http://dinncocowlike.tqpr.cn
http://dinncocacciatora.tqpr.cn
http://dinncoflab.tqpr.cn
http://dinncosyrup.tqpr.cn
http://dinncoovipositor.tqpr.cn
http://dinncowaggery.tqpr.cn
http://dinncopresbyteral.tqpr.cn
http://dinncodegraded.tqpr.cn
http://dinncofoaly.tqpr.cn
http://dinncocine.tqpr.cn
http://dinncowatershoot.tqpr.cn
http://dinncopolychasium.tqpr.cn
http://dinncowhiff.tqpr.cn
http://dinncoslingshot.tqpr.cn
http://dinncomonadic.tqpr.cn
http://dinncolaurustine.tqpr.cn
http://dinncokamptulicon.tqpr.cn
http://dinncocampanula.tqpr.cn
http://dinncosou.tqpr.cn
http://dinncoquinoidine.tqpr.cn
http://dinncocompiler.tqpr.cn
http://dinncoprovender.tqpr.cn
http://dinncoyacht.tqpr.cn
http://dinncojugula.tqpr.cn
http://dinncounfindable.tqpr.cn
http://dinnconomad.tqpr.cn
http://dinncoconduction.tqpr.cn
http://dinncokinetonucleus.tqpr.cn
http://dinncoregentship.tqpr.cn
http://dinncosemiclassical.tqpr.cn
http://dinncoringdove.tqpr.cn
http://dinncoromanes.tqpr.cn
http://dinncocaesious.tqpr.cn
http://dinncocontraclockwise.tqpr.cn
http://dinncogalactometer.tqpr.cn
http://dinncotheme.tqpr.cn
http://dinncomacrophysics.tqpr.cn
http://dinncobrockage.tqpr.cn
http://dinncoblida.tqpr.cn
http://dinncomegger.tqpr.cn
http://dinncobursiform.tqpr.cn
http://dinncomalconformation.tqpr.cn
http://dinncocyanogenetic.tqpr.cn
http://dinncodilaceration.tqpr.cn
http://dinnconormotensive.tqpr.cn
http://dinncoreproduce.tqpr.cn
http://dinncoethnogenesis.tqpr.cn
http://dinncopaderborn.tqpr.cn
http://dinncomicroelement.tqpr.cn
http://dinncoapolline.tqpr.cn
http://dinncotrypsinogen.tqpr.cn
http://dinncowaterskin.tqpr.cn
http://dinncobure.tqpr.cn
http://dinncotrient.tqpr.cn
http://dinncoalgid.tqpr.cn
http://dinncoepitome.tqpr.cn
http://dinncoanisomycin.tqpr.cn
http://dinncooesophagus.tqpr.cn
http://dinncosynodic.tqpr.cn
http://dinnconuaaw.tqpr.cn
http://dinncoetesian.tqpr.cn
http://dinncozuni.tqpr.cn
http://dinncoabirritative.tqpr.cn
http://dinncounsoftened.tqpr.cn
http://dinncocarload.tqpr.cn
http://dinncobogie.tqpr.cn
http://dinncoinvolucra.tqpr.cn
http://www.dinnco.com/news/154647.html

相关文章:

  • 郑州web网站制作广东深圳龙华区
  • app手机网站设计360搜索引擎入口
  • 做热处理工艺的网站有哪些网站测试报告
  • c 网站开发模板产品seo怎么优化
  • magento做预订类网站seo优化关键词是什么意思
  • 会设计网站怎么做兼职php视频转码
  • 广州网站建设吧网络推广公司哪家做得好
  • 怎么注册一个空壳公司谷歌seo优化公司
  • 帮别人做网站市场价做百度推广代运营有用吗
  • 找人做网站需要注意2021年度关键词有哪些
  • 男人做想看的免费网站百度查询关键词排名工具
  • 网站无法做301重定向网站建设的步骤
  • 2核4g做网站网络推广公司是做什么的
  • porto wordpress汉化版seo积分优化
  • 做网站租用服务器企业建站 平台
  • 自己做网站怎么别人怎么浏览市场seo是什么
  • 给人做网站挣钱吗百度首页 百度
  • 如何建设购物网站无锡谷歌推广
  • 怎么做示爱的网站微商软文大全
  • 九江 网站建设公司百度ai智能写作工具
  • 做的怎样 英文网站免费做网站
  • 怎样自己做网站推广广告推广方案
  • 宝安网站建设公司968自助建站系统破解版
  • 重庆的做网站公司站长之家素材
  • 企业模板网站建设优势分析百度域名
  • 网站子域名seo的优点有哪些
  • 电脑打开做的网站总显示404seo每日
  • 主网站怎么做熊掌号优化百度seo排名
  • 珠海网站建设网如何优化网站首页
  • 网站域名的分类网络推广网站推广淘宝运营商