Qt中使用json格式封装数据及解析数据

由于json格式的数据阅读起来简单方便,也便于机器解析与生成。在最近的项目中,使用json格式的数据可以快速的传输,首次使用这种格式,所以把自己的封装数组的使用心得记录下来。

        QJsonObject json;

        QJsonArray   Array;

   json.insert("x","100");
    json.insert("y","200");

     Array.push_back(json); 

    QJsonDocument jsonDoc(Array);

    QByteArray strArray = jsonDoc.toJson(QJsonDocument::Indented);

    QString string(strArray);

    QJsonObject strjson;

    strjson.insert("date",string);

   strjson.insert("time","2018.10.19");

   QJsonDocument strdocument;

   strdocument.setObjects(strjson);

 QByteArray Ary = strdocument.toJson(QJsonDocument::Indented);

最终的结果为{"date" : "[ {"ux" : "100" , "uy" : "200"} ]" ,"time" : "2018.10.19"}

解析上面的json数据

QJsonParseError error;

QJsonDocument document = QJsonDocument::fromJson(Ary, &jsonError);

if(!document.isNull() &&(error.error = QJsonParseError::NoError)

{

     if(document.isObject())

   { 

       QJsonObject object = document.object();

      QJsonObject::Iterator it;

      for(it = object.begin;it != object.end;it++)

     {

         QString key = it.key();

         QString value = it.value().toString();

         if("time" == key)

         {

               qDebug()<<"time:"<

         }  

          if("date" == key)

         {

              if(it.value.isArray())

             {

                    QJsonArray array = it.value().toString();

                     for(int i = 0;i < array.count(); i ++)

                    {

                          QJsonValue value = array.at(i);

                          QJsonObject object = value.toObject();//转化为对象

                          QJsonObject::Iterator it;

                          for(it = object.begin();it != object.end();it ++)

                         {

                                QString key = it.key();

                                QString value = it.value().toString();

                                 if("ux" == key)

                                 {

                                        qDebug()<<"ux:"<

                                 }

                                 if("uy" == key)

                                 {

                                      qDebug()<<"uy:"<

                                 }

                          }

                     }

             }    

         }

     }  

  }

 

 

 

 

你可能感兴趣的:(Qt中使用json格式封装数据及解析数据)