qt接收json数据进行解析,json解析字符串
伊德斯干货盘点
JSON!JSON!JSON!数据解析Qt?夸脱中内置了一个qjsonddocument类用来处理JSON!JSON!JSON!数据文件,以及JSON!JSON!JSON!数据字符串。解析思路先将字串(字符串)加载到qjsonddocument中,然后将其逐层解析。数据的格式包含两种,1)对象,2)数组
名字解析qjsonddocument一个封装完整JSON!JSON!JSON!数据文档的类,可以从UTF-8格式编码的基于文本的表示以及Qt?夸脱自己的二进制格式读取和写入该文档QJsonObject函数是键值对的列表,其中键是唯一的字符串,值由qjsonvalue表示。QJsonArrayJSON数组是一个值列表。可以通过从数组中插入和删除qjsonvalue来操作该列表。qjsonvaluejson是一种存储结构化数据的格式。它有6种基本数据类型:bool双字符串数组对象为空qjsonparserror用于在JSON!JSON!JSON!数据解析期间报告错误对象解析测试数据
{ 名称:小明年龄:18岁Qt json解析对象代码
` c
请参阅MainWindow:parseObject()
{
qsstring str={ \ name \:_小明\、\年龄\ :18}
qjsonddocument jdoc=qjsonddocument:from JSON(str。toutf 8());
qjsonobject作业对象=jdoc。object();
qjsonalue jvalue _ name=作业对象。价值(名称
qinfo()jvalue _ name。tostring();
qjsonalue jvalue _ age=作业对象。价值(年龄
qinfo()jvalue _ age。to int();
//////////遍历/////////////////foreach(自动项,作业主题。keys()){ qinfo() key: item;qjsonalue jvalue=作业对象。值(项);qinfo() value: jvalue。to variant();}}
运行结果"外壳"小明18键:“年龄”值:q变量(double,18)键:“姓名”值:q变量(qsstring小明)数组解析测试数据
[苹果、桔子、香蕉、西瓜]Qt JSON解析数组代码
` c
请参阅MainWindow:parseArray()
{
qsstring str=[\苹果\ 、\橘子\ 、\香蕉\ 、\西瓜\ ]
qjsonddocument jdoc=qjsonddocument:from JSON(str。toutf 8());
qjsonaarray jarray=jdoc。array();
//item(项目)为qjsonvalue类型
foreach(自动项目,jArray)>
秦佛()项。tostring();
}
}
运行结果"苹果外壳" "橘子" "香蕉" "西瓜"数组对象混合解析测试数据
{Lists:[apple , orange]}Qt json解析代码
` c
请参阅MainWindow:parseObjectArray()
{
qsstring str={ \ lists \:[\ apple \ 、\ orange\ ]}
qjsonddocument jdoc=qjsonddocument:from JSON(str。toutf 8());
qjsonobject作业对象=jdoc。object();
qjsonalue jlists=作业对象。价值(列表
qjsonaarray jarray=jlists。toa array();
//item(项目)为qjsonvalue类型
foreach(自动项目,jArray)>
秦佛值:项目。tostring();
}
}
运行结果外壳值:苹果值:橙色对象数组混合解析测试数据
[{ 名称:"小明年龄18岁:小王年龄:20 )季度解析JSON!JSON!JSON!数据代码
` c
请参阅MainWindow:parseArrayObject()
{
qstring字符串=
[{ \ name \:_小明\ 、\年龄\ :18岁、{\ Name\ :\ 、\ n小王\、\年龄\ :20}]
qjsonddocument jdoc=qjsonddocument:from JSON(str。toutf 8());
qjsonaarray jlists=jdoc。array();
foreach(自动项目,jlists)>
qjsonobject item _ object=item。to object();
qinfo()======================================================================================不不不不不不
qInfo() name: item_object.value(名称)。tostring();
秦佛()年龄:item _ object。价值(年龄).todouble();
}
}
运行结果` shell=====================名称: 小明年龄:18=========================名称:"小王年龄:20公众号:# Qt小王子【中文】
来自51吨重博客作者三雷科技的原创作品,
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。