|
@@ -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"
|