• 4671阅读
  • 1回复

[提问]Qt Json数据 如何打印 使其格式化? [复制链接]

上一主题 下一主题
离线shixingya
 

只看楼主 倒序阅读 楼主  发表于: 2018-03-27
— 本帖被 toby520 从 Qt 作品展 移动到本区(2018-03-27) —
       QJsonDocument doc;
        doc.setObject(QJsonObject);
        QByteArray request_body = doc.toJson();

   qDebug()<<request_body ;

我用以上方式打印Json , 格式太乱了, 不好阅读, 答应出来格式如下


receive data : "{\n    \"code\": 0,\n    \"data\": {\n        \"homeworks\": [\n            {\n                \"amend_times\": 0,\n                \"answer_right_nums\": 5,\n                \"answer_wrong_nums\": 0,\n                \"first_submit_time\": \"--\",\n                \"last_submit_time\": \"--\",\n                \"paper_number\": \"2889000\",\n                \"score\": 100,\n                \"status\": 40,\n                \"student\": {\n                    \"display_name\": \"小明同学\",\n                    \"mobile\": \"15210608504\",\n                    \"real_name\": \"小明同学\",\n                    \"student_avator\": \"m/icon%2F1517887868078tuWDBimage1517887859468.jpg\",\n                    \"user_id\": \"341097\"\n                },\n                \"student_number\": \"341097\"\n            },\n            {\n                \"amend_times\": 0,\n                \"answer_right_nums\": 5,\n                \"answer_wrong_nums\": 0,\n                \"first_submit_time\": \"--\",\n                \"last_submit_time\": \"--\",\n                \"paper_number\": \"2889169\",\n                \"score\": 0,\n                \"status\": 40,\n                \"student\": {\n                    \"display_name\": \"豪爵吸金ing\",\n                    \"mobile\": \"186100\",\n                    \"real_name\": \"豪爵吸金ing\",\n                    \"student_avator\": \"uncs.com/icon%2F1517799797776Ktdxuweb.png\",\n                    \"user_id\": \"663137\"\n                },\n                \"student_number\": \"663137\"\n            }\n        ]\n    },\n    \"msg\": \"succ\",\n    \"pager\": {\n        \"count\": 2,\n        \"page_num\": 0,\n        \"page_size\": 10000\n    }\n}\n"
"获取学生作业列表"  doRequest receive data : "{\n    \"code\": 0,\n    \"data\": {\n        \"homeworks\": [\n            {\n                \"amend_times\": 0,\n                \"answer_right_nums\": 5,\n                \"answer_wrong_nums\": 0,\n                \"first_submit_time\": \"--\",\n                \"last_submit_time\": \"--\",\n                \"paper_number\": \"2887623\",\n                \"score\": 100,\n                \"status\": 40,\n                \"student\": {\n                    \"display_name\": \"小明同学\",\n                    \"mobile\": \"15210608504\",\n                    \"real_name\": \"小明同学\",\n                    \"student_avator\": \"uWDBimage1517887859468.jpg\",\n                    \"user_id\": \"341097\"\n                },\n                \"student_number\": \"341097\"\n            },\n            {\n                \"amend_times\": 0,\n                \"answer_right_nums\": 5,\n                \"answer_wrong_nums\": 0,\n                \"first_submit_time\": \"--\",\n                \"last_submit_time\": \"--\",\n                \"paper_number\": \"2889165\",\n                \"score\": 100,\n                \"status\": 40,\n                \"student\": {\n                    \"display_name\": \"豪爵吸金ing\",\n                    \"mobile\": \"18610042411\",\n                    \"real_name\": \"豪爵吸金ing\",\n                    \"student_avator\": \"%2F1517799797776Ktdxuweb.png\",\n                    \"user_id\": \"663137\"\n                },\n                \"student_number\": \"663137\"\n            }\n        ]\n    },\n    \"msg\": \"succ\",\n    \"pager\": {\n        \"count\": 2,\n        \"page_num\": 0,\n        \"page_size\": 10000\n    }\n}\n"

如何使其格式化  参考下面的方法

  1. QByteArray QJsonDocument::toJson(JsonFormat format = Indented) const  
其中,format主要有两种格式,一种是人们可读的格式,一种是紧凑的格式。分别描述如下表:

ConstantValueDescription
QJsonDocument::Indented0定义人们可读的输出格式,如下:
{
"Array":[
true,
999,
"string"
],
"key": "value",
"null": null
}
QJsonDocument::Compact1定义一个紧凑的输出格式,如下:





本人2008年9月至2012年6月在三亚学院学习计算机科学与技术专业四年,2012年6月毕业后至今一直在北京市从事软件开发相关工作。本人的技术栈是C++、熟悉Qt、CEF框架。参与或负责过多款Windows、Linux环境下桌面软件的研发。
参加工作十年来,使用Qt参与开发过一个军工仿真想定建模工具,仿真陆、海、空潜等各兵种的作战平台(包括地面车辆、水面舰艇、固定翼/旋转翼飞机、潜艇等)的运动方式和工作流程,实现陆、海、空、潜立体化协同作战仿真。在国美调研过电商OA办公工具的开发设计、在广联达参与了BIM软件的协作开发、在书生电子独立负责过OFD版式阅读器客户端的开发、在跟谁学使用Qt WebEngine、QGraphics等主导了练习批改工具的开发,在蓝湖基于WebAssembly对标Figma参与开发了一款原型设计工具mastergo,在小米集团技术委员会承担了平台应用研发工作,目前在凌云光从事视觉相关应用平台开发。十多年的软件开发工作,让我在软件工程、程序设计、系统架构方面积累了丰富且宝贵的经验。
有同行的朋友,可以加我微信,一起进步
我叫史星亚 微信: EagleAndy  
加好友时请备注  来自qtcn
我有个Qt交友群,拉您入群
非工作时间 可以电联 18610042411
*********************************************************
另低价出售
→各种软件小程序定制!
→SAP教程,涵盖BI/SD/FICO/HANA等各种模块视频教程,购买教程,拾取金领顾问教程!
→各种考证考研题库,保证考证考研成功上岸!
→抖音快手微博朋友圈各种点赞支持,最快一分钟上万赞!
→挂机打卡,远程叫醒,等各种服务欢迎私信EagleAndy开启!
转发此内容,私信EagleAndy,有定制盲盒寄送!
离线never_forget

只看该作者 1楼 发表于: 2018-03-28
楼上正解 ~
快速回复
限100 字节
 
上一个 下一个