Ver código fonte

0407 转json

caizm 2 anos atrás
pai
commit
c2557af604

+ 9 - 0
CAE_Solution/tests/jsonToQt_Test/jsonToQt_Test.pro

@@ -0,0 +1,9 @@
+QT += testlib
+QT -= gui
+
+CONFIG += qt console warn_on depend_includepath testcase
+CONFIG -= app_bundle
+
+TEMPLATE = app
+
+SOURCES +=  tst_json_test.cpp

+ 87 - 0
CAE_Solution/tests/jsonToQt_Test/tst_json_test.cpp

@@ -0,0 +1,87 @@
+#include <QtTest>
+#include <iostream>
+// add necessary includes here
+
+class json_test : public QObject
+{
+    Q_OBJECT
+
+public:
+    json_test();
+    ~json_test();
+
+private slots:
+    void test_case1();
+
+};
+
+json_test::json_test()
+{
+
+}
+
+json_test::~json_test()
+{
+
+}
+/************************************
+ *运行:选择该项目pro文件,先执行qmake,再构建,最后运行即可
+ *测试:json消息通过qt解析
+ *
+ * 结果:成功
+ * ************************************/
+void json_test::test_case1()
+{
+    std::string msg="{\"usrId\":\"20b49733a2934704ac338a7d27b8f23f\",\"solverConfigid\":\"ac21409a892047a68fe2beabc3f24f14\",\"proId\":\"13538bee645c49f599dd10a7f77665c4\",\"paramJson\":\"\",\"action\":\"init\"}";
+    QJsonParseError jsonError;
+    QByteArray array=QString::fromStdString(msg).toLatin1();
+    qDebug()<<array;
+    QJsonDocument doucment = QJsonDocument::fromJson(array, &jsonError);  // 转化为 JSON 文档
+    qDebug()<<"error!"<<jsonError.errorString();
+    if (!doucment.isNull() && (jsonError.error == QJsonParseError::NoError)) {  // 解析未发生错误
+        if (doucment.isObject()) {  // JSON 文档为对象
+            QJsonObject object = doucment.object();  // 转化为对象
+            if (object.contains("usrId")) {
+                QJsonValue value = object.value("usrId");
+                if (value.isString()) {
+                     QString usrId = value.toString();
+                    qDebug()<<"usrId:"<<usrId;
+                }
+            }
+            if (object.contains("solverConfigid")) {
+                QJsonValue value = object.value("solverConfigid");
+                if (value.isString()) {
+                    QString solverConfigid = value.toString();;
+                    qDebug()<<"solverConfigid:"<<solverConfigid;
+                }
+            }
+            if (object.contains("proId")) {
+                QJsonValue value = object.value("proId");
+                if (value.isString()) {
+                    QString proId = value.toString();
+                    qDebug()<<"proid:"<<proId;
+                }
+            }
+            if (object.contains("paramJson")) {
+                QJsonValue value = object.value("paramJson");
+                if (value.isString()) {
+                   QString paramJson = value.toString();
+                    qDebug()<<"paramJson:"<<paramJson;
+                }
+            }
+            if (object.contains("action")) {
+                QJsonValue value = object.value("action");
+                if (value.isString()) {
+                   QString action = value.toString();
+                    qDebug()<<"action:"<<action;
+                }
+            }
+
+        }
+    }
+
+}
+
+QTEST_APPLESS_MAIN(json_test)
+
+#include "tst_json_test.moc"