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