当前位置:   article > 正文

QT解析JSON格式文件_qt中json解析

qt中json解析

参考博客

文件格式

  1. {
  2. "attentions": [
  3. {
  4. "meta_key": "sys.ram.s1",
  5. "inference": {
  6. "mean": 15600,
  7. "max": 18000
  8. }
  9. },
  10. {
  11. "meta_key": "sys.gpu.s1",
  12. "inference": {
  13. "mean": 70.0,
  14. "max": 100
  15. }
  16. },
  17. {
  18. "meta_key": "sys.total.cpu.s1",
  19. "inference": {
  20. "mean": 65.0,
  21. "max": 80
  22. }
  23. },
  24. {
  25. "meta_key": "sys.ram.s2",
  26. "inference": {
  27. "mean": 15600,
  28. "max": 18000
  29. }
  30. },
  31. {
  32. "meta_key": "sys.gpu.s2",
  33. "inference": {
  34. "mean": 70.0,
  35. "max": 100
  36. }
  37. },
  38. {
  39. "meta_key": "sys.total.cpu.s2",
  40. "inference": {
  41. "mean": 65.0,
  42. "max": 80
  43. }
  44. },
  45. {
  46. "meta_key": "sys.ram.s3",
  47. "inference": {
  48. "mean": 15600,
  49. "max": 18000
  50. }
  51. },
  52. {
  53. "meta_key": "sys.gpu.s3",
  54. "inference": {
  55. "mean": 70.0,
  56. "max": 100
  57. }
  58. },
  59. {
  60. "meta_key": "sys.total.cpu.s3",
  61. "inference": {
  62. "mean": 65.0,
  63. "max": 80
  64. }
  65. },
  66. {
  67. "meta_key": "sys.ram.s4",
  68. "inference": {
  69. "mean": 15600,
  70. "max": 18000
  71. }
  72. },
  73. {
  74. "meta_key": "sys.gpu.s4",
  75. "inference": {
  76. "mean": 70.0,
  77. "max": 100
  78. }
  79. },
  80. {
  81. "meta_key": "sys.total.cpu.s4",
  82. "inference": {
  83. "mean": 65.0,
  84. "max": 80
  85. }
  86. }
  87. ]
  88. }

  1. #include <QJsonDocument>
  2. #include <QJsonParseError>
  3. #include <QJsonObject>
  4. #include <QJsonArray>
  5. #include <QJsonValue>
  6. #include <QFile>
  7. #include <QDebug>
  8. void MainWindow::readJson()
  9. {
  10. /*解析json文件*/
  11. QFile file("E:/5_Project/3_QT_Code/QJson/test2.json");
  12. file.open(QIODevice::ReadOnly | QIODevice::Text);
  13. QString value = file.readAll();
  14. file.close();
  15. QJsonParseError parseJsonErr;
  16. QJsonDocument document = QJsonDocument::fromJson(value.toUtf8(),&parseJsonErr);
  17. if(!(parseJsonErr.error == QJsonParseError::NoError))
  18. {
  19. qDebug()<<tr("解析json文件错误!");
  20. return;
  21. }
  22. QJsonObject jsonObject = document.object();
  23. if(jsonObject.contains(QStringLiteral("attentions")))
  24. {
  25. QJsonValue arrayValue = jsonObject.value(QStringLiteral("attentions"));
  26. if(arrayValue.isArray())
  27. {
  28. QJsonArray array = arrayValue.toArray();
  29. for(int i=0;i<array.size();i++)
  30. {
  31. QJsonValue jsonVal = array.at(i);
  32. QJsonObject jsonObj = jsonVal.toObject();
  33. QString key = jsonObj["meta_key"].toString();
  34. QJsonObject jval=jsonObj["inference"].toObject();
  35. double mean=jval["mean"].toDouble();
  36. double maxVal=jval["max"].toDouble();
  37. qDebug()<<"key:"<<key<<" mean="<<mean<<" maxVal="<<maxVal;
  38. }
  39. }
  40. }
  41. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/470411
推荐阅读
相关标签
  

闽ICP备14008679号