在QT4.7中使用QJson
📅 2026/7/28 19:51:16
👁️ 次浏览
前言在用QT4.7.0写一个小程序有http get的操作返回结果是json格式需要从json串中拿key-value。QT4中没有json组件, 查资料说有QJson可用, 我用的QJson0.8.1https://github.com/flavio/qjson/releases/tag/0.8.1试验QJson的包含看了网上同学的QJson用法很多人都将QJson编译成单独的DLL, 供QT4使用。我是QT4新手书看的很少。怎么用简单我就怎么来。看到有同学直接包含进工程用我也这么用。包含后编译不过。在qjson_export.h中定义空的QJSON_EXPORT这样就不会按照DLL编译了然后就能编译过。/* This file is part of the KDE project Copyright (C) 2009 Pino Toscano pinokde.org This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1, as published by the Free Software Foundation. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef QJSON_EXPORT_H #define QJSON_EXPORT_H #include QtCore/qglobal.h #define QJSON_EXPORT // ! 直径包含进工程用字节定义一个空宏 #ifndef QJSON_EXPORT # if defined(QJSON_MAKEDLL) /* We are building this library */ # define QJSON_EXPORT Q_DECL_EXPORT # else /* We are using this library */ # define QJSON_EXPORT Q_DECL_IMPORT # endif #endif #endif测试代码的调用部分拼一段json串送进函数进行分析这段json串就是QJson官方给的例子串// test parse_replay_as_json str_tmp tr({ \ \encoding\ : \UTF-8\, \ \plug-ins\ : [ \ \python\, \ \c\, \ \ruby\ \ ], \ \indent\ : { \length\ : 3, \use_space\ : true } \ }); rd_buf str_tmp.toUtf8(); // 将字符串转成数组 parse_replay_as_json(rd_buf);测试代码的分析部分QJson中对于不存在的key做了一个空key-value, 返回的值是空.显然这不是想要的结果。去单步QJson的实现发现可以用QVariantMap::contains()去检测是否有key, 如果key存在才去取值。void WorkerThread3::parse_replay_as_json(QByteArray data) { QString str_tmp; // str_tmp.append(data); QJson::Parser parser; bool ok false; // json is a QString containing the data to convert QVariantMap result parser.parse(data, ok).toMap(); if (!ok) { qDebug() tr(error : json parse); } QVariant var1; bool b_key_exist false; // 不存在的值 b_key_exist result.contains(tr(key_not_exist)); if (b_key_exist) { var1 result[tr(key_not_exist)]; // cant run this code, because key not exist } // key - value b_key_exist result.contains(tr(encoding)); if (b_key_exist) { var1 result[tr(encoding)]; qDebug() tr(encoding) var1.toString(); // encoding UTF-8 } // 枚举值 e.g. plug-ins : {a, b, c} b_key_exist result.contains(tr(plug-ins)); if (b_key_exist) { foreach (QVariant plugin, result[plug-ins].toList()) { str_tmp plugin.toString(); qDebug() enum value str_tmp; // enum value python // enum value c // enum value ruby } } // 子map, 里面有key-value QVariantMap nestedMap result[indent].toMap(); b_key_exist nestedMap.contains(tr(length)); if (b_key_exist) { str_tmp nestedMap[tr(length)].toString(); qDebug() tr(length ) str_tmp; // length 3 } b_key_exist nestedMap.contains(tr(use_space)); if (b_key_exist) { str_tmp nestedMap[tr(use_space)].toString(); qDebug() tr(use_space ) str_tmp; // use_space true } }
Agent 开发十大坑:从工具调用失败到记忆爆炸
一、个性化深度引言
Agent 这几年火得不行。从 AutoGPT 到各种 Multi-Agent 框架,好像搭一个 Agent 就是几行代码的事。但真正把 Agent 推到生产环境的人都知道——demo 看起来是智能体,上线之后是…
📅 2026/7/28 19:51:16
iOS从打包到上架详细流程
作为一名iOS开发者,从写好代码到最终出现在App Store上,中间涉及的打包、签名、上传、审核等环节,常常让新手感到眼花缭乱。本文将用通俗易懂的方式,带你一步步走通iOS从打包到上架的完整流程。我们将结…
📅 2026/7/28 19:51:16
1. 项目概述:从“救火”到“防火”的质效革命在软件交付的战场上,我们常常陷入一种恶性循环:开发团队加班加点完成功能开发,测试团队在发布前夕通宵达旦地执行回归测试,最终在高压下带着已知风险上线,然后运…
📅 2026/7/28 19:50:16
1. AIGS技术浪潮下的Java企业转型契机当我在2023年参与某跨国零售集团的库存优化系统重构时,首次将AIGS(AI-Generated Software)技术栈引入传统JavaEE架构。项目上线后,需求响应周期从原来的3周缩短至72小时,这个数字让…
📅 2026/7/28 21:02:57
这次我们直接切入主题,聊聊AGI(通用人工智能)。你可能经常听到这个词,但感觉它既熟悉又遥远,像是科幻电影里的概念。实际上,AGI是当前AI研究领域的“圣杯”,它代表着一种能够像人类一样思考、学…
📅 2026/7/28 21:02:57
1. 项目概述:为什么需要深入理解评估模块在汽车电子,特别是底盘控制和安全系统领域,电子驻车制动(EPB)正迅速取代传统的机械拉线手刹。其核心优势在于集成度高、响应快,并能无缝融入整车电子架构࿰…
📅 2026/7/28 21:02:57
在科技行业的星辰大海中,黄仁勋(Jensen Huang)的创业故事堪称一部经典的励志传奇。从年轻时在餐厅洗碗的普通经历,到如今执掌全球顶尖的AI计算公司英伟达(NVIDIA),他的历程不仅展现了个人奋斗的…
📅 2026/7/28 21:02:57
1. 项目概述:Python股票数据可视化实战股票数据分析是量化投资和金融研究的基础环节,而可视化则是理解市场趋势的关键手段。这个项目通过Python生态中的主流工具链,实现了从数据获取到交互式可视化的完整流程。不同于简单的Matplotlib折线图绘…
📅 2026/7/28 21:02:57
更多请点击:
https://codechina.net
第一章:AI 自动生成报表 AI 自动生成报表正逐步重构企业数据运营范式,将传统依赖人工整理、Excel手工建模、BI工具拖拽配置的流程,升级为端到端语义驱动的智能交付链路。其核心能力在于理解自…
📅 2026/7/28 21:01:57
告别臃肿!3步让你的暗影精灵笔记本重获新生 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub
你是否也曾为官方Om…
📅 2026/7/28 0:00:45
做 RAG 的人应该都踩过这个致命的坑:把几百页的财报、法规、技术手册扔给向量库,问一个具体问题,搜出来的全是沾边但没用的内容 —— 关键信息要么被硬切块拆碎了,要么藏在几十条结果的最下面。语义相似≠真正相关,这个…
📅 2026/7/28 0:00:46
2026年做短视频运营,从抖音上扒文案早就不是偷偷抄笔记的事了。我刚开始做内容的时候,每天刷半小时抖音,手动把爆款视频的口播敲进备忘录,一条2分钟的视频得花十来分钟,碰到语速快的还要反复回听。后来试了一圈工具&am…
📅 2026/7/28 0:00:46
更多请点击:
https://codechina.net
第一章:AI帮助理解数学概念 人工智能正以前所未有的方式重塑数学学习的路径。通过自然语言处理与符号计算的深度融合,AI不仅能解析抽象定义,还能将定理、证明和几何直觉转化为可交互、可验证的…
📅 2026/7/28 1:13:29
1. 项目背景与核心价值去年参与的一个短剧项目让我深刻体会到传统创作流程的痛点:编剧团队花了三周打磨剧本,角色设计反复修改了七版,最后成片时又因为演员档期问题不得不临时调整分镜。这种低效的创作模式在快节奏的内容行业越来越难以为继。…
📅 2026/7/28 1:13:29
remix-i18next TypeScript类型安全实践:确保翻译键与类型定义同步 【免费下载链接】remix-i18next The easiest way to translate your React Router framework mode apps 项目地址: https://gitcode.com/gh_mirrors/re/remix-i18next
在开发多语言应用时&am…
📅 2026/7/28 1:13:29
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/28 7:13:45
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/28 17:14:18
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/28 5:13:40