Exemplo n.º 1
0
TEST(Json, JsonGetListOfMapsFromString) {
  std::string json_str("{\"1\":\"2\",\"3\":\"4\"}");
  json json_obj(json_str);
  auto json_map = json_obj.get_map();
  EXPECT_EQ(std::string("2"), json_map[std::string("1")]);
  EXPECT_EQ(std::string("4"), json_map[std::string("3")]);
}
Exemplo n.º 2
0
int WebController::Setup(){
  log_info("Initialize");
  char fileName[256];
  absolutePath("settings/setup.cnf", fileName);
  MappedFile mmFile;
  if(mmapNamedFile(mmFile, fileName)){
    log_info("Failed to read setup file");
    return -1;
  }

  json_token *setup = NULL;
  setup = parse_json2(mmFile.addr, mmFile.filesize);

  json_str(setup,"machine",settings_file_);
  json_str(setup,"gcodefile",current_gcode_file_);

  free(setup);
  unmapFile(mmFile);
  return 0;
}
Exemplo n.º 3
0
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QJsonObject json;
    json.insert("name",QString("Qt"));
    json.insert("version",5);
    json.insert("windows",true);

    QJsonDocument document;
    document.setObject(json);
    QByteArray byte_array = document.toJson(QJsonDocument::Compact);
    QString json_str(byte_array);
    qDebug() << json_str;

    return a.exec();
}
Exemplo n.º 4
0
void MainWindow:: CityReplyFinishedSlot(QNetworkReply *reply)
{
    //qDebug() << "step:  CityReplyFinished";
    QByteArray data=reply->readAll();
    QString json_str(data);
    QJsonParseError error;
    QJsonDocument jsonDocument = QJsonDocument::fromJson(json_str.toUtf8(), &error);
    QJsonObject json_obj=jsonDocument.object();
    QJsonObject::const_iterator data_ = json_obj.find("content");//解析出data子对象
    QJsonValue data_value= data_.value();
    QJsonObject data_obj=data_value.toObject();
    QJsonObject::const_iterator  City_ = data_obj.find("address_detail");
    QJsonValue City_value= City_.value();
    QJsonObject City_obj=City_value.toObject();
    //qDebug() << "step:  address_detail"<<City_obj.value();
    QString str_city=City_obj.find("city").value().toString();
    str_city.chop(1);
    //qDebug() << "step: getcity2::  "<<str_city;
    url_str_city=str_city;
    GetDataSlot();
}
Exemplo n.º 5
0
void WebController::setInterpreterActionParams(struct json_token *jsontoken, int indexOffset, int count, const char* pathTemplate) {
  double dParam0, dParam1, dParam2, dParam3, dParam4;
  int action;
  char path[64];
  char *file = NULL;
  char *name = NULL;
  json_token *token;

  for(int i= 0;i<count;i++){

    sprintf(path,pathTemplate,i);
    token = find_json_token(jsontoken, path);
    if(token){
      action = dParam0 = dParam1 = dParam2 = dParam3 = dParam4 = 0;
      json_int(token,"action",&action);
      if(action > 0){
        json_str(token,"name",&name,64);
        json_str(token,"file",&file,256);
        json_double(token,"dParam0",&dParam0);
        json_double(token,"dParam1",&dParam1);
        json_double(token,"dParam2",&dParam2);
        json_double(token,"dParam3",&dParam3);
        json_double(token,"dParam4",&dParam4);

      }
      //M2-M9,S index 2-9
      //userButtons index 11-20
      //M100-M119 index 21 -39
      //Special actions index 41 -48
      int actionIndex = indexOffset + i;
      int actionNameIndex = action > 0 && action < 10?action:10;
      if(actionNameIndex != 10){
        //printf("Set action index %d to %s\n",actionIndex, ACTION_NAMES[actionNameIndex]);

      }
      Interpreter->McodeActions[actionIndex].Action = action;
      Interpreter->McodeActions[actionIndex].dParams[0] = dParam0;
      Interpreter->McodeActions[actionIndex].dParams[1] = dParam1;
      Interpreter->McodeActions[actionIndex].dParams[2] = dParam2;
      Interpreter->McodeActions[actionIndex].dParams[3] = dParam3;
      Interpreter->McodeActions[actionIndex].dParams[4] = dParam4;


      //file should be nulled if not set.
      if(file == NULL || action == 0){
        Interpreter->McodeActions[actionIndex].String[0] = 0;
      } else {
        if(file[0]=='/'){
          //path is absolute
          strcpy(Interpreter->McodeActions[actionIndex].String, file);
        } else {
          //path is relative. make it absolute
          char absoluteFile[256];
          absolutePath(file, absoluteFile);
          strcpy(Interpreter->McodeActions[actionIndex].String, absoluteFile);
        }
      }

    } else {
      printf("Failed %s\n", pathTemplate);
    }
  }
  free(file);
  free(name);
}
Exemplo n.º 6
0
void WebController::SetMotionParams(const char *buf, size_t len) {
  log_info("SetMotionParams");
  json_token *jsontoken = NULL;
  jsontoken = parse_json2(buf, len);

  char * name = NULL;
  json_token *token;

  MOTION_PARAMS *p=Interpreter->GetMotionParams();
  double maxAccel,maxVel,countsPerUnit;
  double breakAngle,collinearTol,cornerTol,facetAngle,tpLookahead;

  breakAngle = collinearTol = cornerTol = facetAngle = tpLookahead = 0;
  json_double(jsontoken,"tplanner.breakangle",&breakAngle);
  json_double(jsontoken,"tplanner.cornertolerance",&cornerTol);
  json_double(jsontoken,"tplanner.lookahead",&tpLookahead);
  json_double(jsontoken,"tplanner.collineartolerance",&collinearTol);
  json_double(jsontoken,"tplanner.facetangle",&facetAngle);

  p->BreakAngle = breakAngle;
  p->CollinearTol = collinearTol;
  p->CornerTol = cornerTol;
  p->FacetAngle = facetAngle;
  p->TPLookahead = tpLookahead;

  //TODO
  //p->RadiusA = m_RadiusA;
  //p->RadiusB = m_RadiusB;
  //p->RadiusC = m_RadiusC;

  char path[64];
  for(int i= 0;i<6;i++){

    sprintf(path,"axes[%i]",i);
    token = find_json_token(jsontoken, path);
    if(token){
      maxAccel = maxVel = countsPerUnit = 0.0;
      json_str(token,"name",&name,1);
      json_double(token,"countsPerUnit",&countsPerUnit);
      json_double(token,"maxAccel",&maxAccel);
      json_double(token,"maxVel",&maxVel);

      // default values form KMotionCNCDlg.c
      maxAccel = maxAccel == 0.0?0.01:maxAccel;
      maxVel = maxVel == 0.0?0.1:maxVel;
      //Zero on countPerUnit will abort GCode
      countsPerUnit = countsPerUnit == 0.0?100.0:countsPerUnit;
      switch (name[0]) {
        case 'X':
          p->CountsPerInchX = countsPerUnit;
          p->MaxAccelX = maxAccel;
          p->MaxVelX = maxVel;
          break;
        case 'Y':
          p->CountsPerInchY = countsPerUnit;
          p->MaxAccelY = maxAccel;
          p->MaxVelY = maxVel;
          break;
        case 'Z':
          p->CountsPerInchZ = countsPerUnit;
          p->MaxAccelZ = maxAccel;
          p->MaxVelZ = maxVel;
          break;
        case 'A':
          p->CountsPerInchA = countsPerUnit;
          p->MaxAccelA = maxAccel;
          p->MaxVelA = maxVel;
          break;
        case 'B':
          p->CountsPerInchB = countsPerUnit;
          p->MaxAccelB = maxAccel;
          p->MaxVelB = maxVel;
          break;
        case 'C':
          p->CountsPerInchC = countsPerUnit;
          p->MaxAccelC = maxAccel;
          p->MaxVelC = maxVel;
          break;
      }

    } else {
      printf("Failed %s\n",path);
    }

  }
  free(name);
  //M2-M9,S index 2-9
  //userButtons index 11-20
  //M100-M119 index 21 -39
  //Special actions index 41 -48
  setInterpreterActionParams(jsontoken, 0,MAX_MCODE_ACTIONS_M1,"actions[%i]");
  setInterpreterActionParams(jsontoken, MCODE_ACTIONS_SPECIAL_OFFSET,MAX_MCODE_ACTIONS_SPECIAL,"specialActions[%i]");
  setInterpreterActionParams(jsontoken, MAX_MCODE_ACTIONS_M1,MAX_MCODE_ACTIONS_BUTTONS,"userActions[%i]");
  setInterpreterActionParams(jsontoken, MCODE_ACTIONS_M100_OFFSET,MAX_MCODE_ACTIONS_M100,"extendedActions[%i]");


  //printf("X %lf, %lf, %lf \n",p->CountsPerInchX,p->MaxAccelX, p->MaxVelX );
  //printf("Y %lf, %lf, %lf \n",p->CountsPerInchY,p->MaxAccelY, p->MaxVelY );
  //printf("Z %lf, %lf, %lf \n",p->CountsPerInchZ,p->MaxAccelZ, p->MaxVelZ );
  //printf("A %lf, %lf, %lf \n",p->CountsPerInchA,p->MaxAccelA, p->MaxVelA );
  //printf("B %lf, %lf, %lf \n",p->CountsPerInchB,p->MaxAccelB, p->MaxVelB );
  //printf("C %lf, %lf, %lf \n",p->CountsPerInchC,p->MaxAccelC, p->MaxVelC );

  //TODO
  //strcpy(Interpreter->ToolFile,m_ToolFile);
  //strcpy(Interpreter->SetupFile,m_SetupFile);
  //strcpy(Interpreter->GeoFile,m_GeoFile);
  //strcpy(Interpreter->VarsFile,m_VarsFile);
  //p->DegreesA = m_DegreesA!=0;
  //p->DegreesB = m_DegreesB!=0;
  //p->DegreesC = m_DegreesC!=0;
  p->ArcsToSegs = true;;

  Interpreter->CoordMotion->SetTPParams();

  free(jsontoken);
}
Exemplo n.º 7
0
void MainWindow::ReplyFinishedSlot(QNetworkReply *reply)  //解析数据
 {
     QByteArray data=reply->readAll();
     QString json_str(data);
     //qDebug() << "step:1"<<json_str.toUtf8();
     QJsonParseError error;
     QJsonDocument jsonDocument = QJsonDocument::fromJson(json_str.toUtf8(), &error);
     QJsonObject json_obj=jsonDocument.object();

     QJsonObject::const_iterator data_ = json_obj.find("data");//解析出data子对象
     QJsonValue data_value= data_.value();
     QJsonObject data_obj=data_value.toObject();
     if (error.error != QJsonParseError::NoError)
     {
         qFatal(error.errorString().toUtf8().constData());
         exit(1);
     }//解析第一层json
     else
     {
         QString info_city=data_obj.find("city").value().toString();
         ui->label_city->setText(info_city);
         QString info_temp=data_obj.find("wendu").value().toString();
         ui->label_day_temp->setText(info_temp);
         //QString info_ganmao=data_obj.find("ganmao").value().toString();
         //ui->label_table_4->setText(info_ganmao);
     }
     QTime current_time = QTime::currentTime();
     QDateTime current_date_time = QDateTime::currentDateTime();
     QString current_date = current_date_time.toString("yyyy-MM-dd ddd");
     QString hourc =QString::number(current_time.hour(), 10);
     int hour = hourc.toInt();
     QJsonObject::const_iterator forecast = data_obj.find("forecast");//解析出forecast子对象
     QJsonValue forecast_value= forecast.value();
     QJsonArray forecast_arr=forecast_value.toArray();
     if (error.error == QJsonParseError::NoError)
     {
         //qDebug() << "step:1"<<forecast_arr;
         QJsonValue weather_value_0=forecast_arr.takeAt(0);
         QJsonObject weather_obj_0=weather_value_0.toObject();
         QString info_date_0=weather_obj_0.find("date").value().toString();
         QString info_wind_fl_0=weather_obj_0.find("fengli").value().toString();
         QString info_wind_fx_0=weather_obj_0.find("fengxiang").value().toString();
         QString info_high_0=weather_obj_0.find("high").value().toString();info_high_0=info_high_0.mid(3);
         QString info_low_0=weather_obj_0.find("low").value().toString();info_low_0=info_low_0.mid(3);
         QString info_type_0=weather_obj_0.find("type").value().toString();
         //ui->label_date_0->setText(info_date_0);
         ui->label_day0_temp_low->setText(info_low_0);
         ui->label_day0_temp_high->setText(info_high_0);
         ui->label_day0_type->setText(info_type_0);
         ui->label_day_type->setText(info_type_0);
         if(info_type_0=="晴")
         {
             if(hour>=6 && hour <=18)
             {
                 ui->label_day0_icon->setPixmap(QPixmap(":/icon/icon2/qing.png"));
                 ui->label_day_icon->setPixmap(QPixmap(":/icon/icon2/qing.png"));
             }
             else
             {
                 ui->label_day0_icon->setPixmap(QPixmap(":/icon/icon2/qing_wanshang.png"));
                 ui->label_day_icon->setPixmap(QPixmap(":/icon/icon2/qing_wanshang.png"));
             }
         }
         if(info_type_0=="多云")
         {
             if(hour>=6 && hour <=18)
             {
                 ui->label_day0_icon->setPixmap(QPixmap(":/icon/icon2/duoyun_wanshang.png"));
                 ui->label_day_icon->setPixmap(QPixmap(":/icon/icon2/duoyun_wanshang.png"));
             }
             else
             {
                 ui->label_day0_icon->setPixmap(QPixmap(":/icon/icon2/duoyun.png"));
                 ui->label_day_icon->setPixmap(QPixmap(":/icon/icon2/duoyun.png"));
             }
         }
         if(info_type_0=="阴")
         {
             ui->label_day0_icon->setPixmap(QPixmap(":/icon/icon2/yin.png"));
             ui->label_day_icon->setPixmap(QPixmap(":/icon/icon2/yin.png"));
         }
         if(info_type_0=="小雨")
         {
             ui->label_day0_icon->setPixmap(QPixmap(":/icon/icon2/xiaoyu.png"));
             ui->label_day_icon->setPixmap(QPixmap(":/icon/icon2/xiaoyu.png"));
         }
         if(info_type_0=="中雨")
         {
             ui->label_day0_icon->setPixmap(QPixmap(":/icon/icon2/zhongyu.png"));
             ui->label_day_icon->setPixmap(QPixmap(":/icon/icon2/zhongyu.png"));
         }
         if(info_type_0=="大雨" || info_type_0=="暴雨")
         {
             ui->label_day0_icon->setPixmap(QPixmap(":/icon/icon2/dayu.png"));
             ui->label_day_icon->setPixmap(QPixmap(":/icon/icon2/dayu.png"));
         }
         if(info_type_0=="阵雨")
         {
             if(hour>=6 && hour <=18)
             {
                 ui->label_day0_icon->setPixmap(QPixmap(":/icon/icon2/zhenyu.png"));
                 ui->label_day_icon->setPixmap(QPixmap(":/icon/icon2/zhenyu.png"));
             }
             else
             {
                 ui->label_day0_icon->setPixmap(QPixmap(":/icon/icon2/zhenyu_wanshang.png"));
                 ui->label_day_icon->setPixmap(QPixmap(":/icon/icon2/zhenyu_wanshang.png"));
             }
         }
         if(info_type_0=="雾")
         {
             if(hour>=6 && hour <=18)
             {
                 ui->label_day0_icon->setPixmap(QPixmap(":/icon/icon2/zhenyu.png"));
                 ui->label_day_icon->setPixmap(QPixmap(":/icon/icon2/zhenyu.png"));
             }
             else
             {
                 ui->label_day0_icon->setPixmap(QPixmap(":/icon/icon2/zhenyu_wanshang.png"));
                 ui->label_day_icon->setPixmap(QPixmap(":/icon/icon2/zhenyu_wanshang.png"));
             }
         }
         if(info_type_0=="小雪")
         {
             ui->label_day0_icon->setPixmap(QPixmap(":/icon/icon2/xiaoxue.png"));
             ui->label_day_icon->setPixmap(QPixmap(":/icon/icon2/xiaoxue.png"));
         }
         if(info_type_0=="中雪")
         {
             ui->label_day0_icon->setPixmap(QPixmap(":/icon/icon2/zhongxue.png"));
             ui->label_day_icon->setPixmap(QPixmap(":/icon/icon2/zhongxue.png"));
         }
         if(info_type_0=="大雪")
         {
              ui->label_day0_icon->setPixmap(QPixmap(":/icon/icon2/daxue.png"));
              ui->label_day_icon->setPixmap(QPixmap(":/icon/icon2/daxue.png"));
         }
         if(info_type_0=="暴雪")
         {
             ui->label_day0_icon->setPixmap(QPixmap(":/icon/icon2/baoxue.png"));
             ui->label_day_icon->setPixmap(QPixmap(":/icon/icon2/baoxue.png"));
         }
         if(info_type_0=="阵雪")
         {
             ui->label_day0_icon->setPixmap(QPixmap(":/icon/icon2/zhenxue.png"));
             ui->label_day_icon->setPixmap(QPixmap(":/icon/icon2/zhenxue.png"));
         }
         if(info_type_0=="雨加雪")
         {
             ui->label_day0_icon->setPixmap(QPixmap(":/icon/icon2/yujiaxue.png"));
             ui->label_day_icon->setPixmap(QPixmap(":/icon/icon2/yujiaxue.png"));
         }
         if(info_type_0=="霾" || info_type_0=="雾霾")
         {
             ui->label_day0_icon->setPixmap(QPixmap(":/icon/icon2/mai.png"));
             ui->label_day_icon->setPixmap(QPixmap(":/icon/icon2/mai.png"));
         }

         QString wind="     风向:"+info_wind_fx_0+"    风力:"+info_wind_fl_0;

         {
         QJsonValue weather_value_1=forecast_arr.takeAt(0);
         QJsonObject weather_obj_1=weather_value_1.toObject();
         QString info_date_1=weather_obj_1.find("date").value().toString();
         QString info_wind_fl_1=weather_obj_1.find("fengli").value().toString();
         QString info_wind_fx_1=weather_obj_1.find("fengxiang").value().toString();
         QString info_high_1=weather_obj_1.find("high").value().toString();info_high_1=info_high_1.mid(3);
         QString info_low_1=weather_obj_1.find("low").value().toString();info_low_1=info_low_1.mid(3);
         QString info_type_1=weather_obj_1.find("type").value().toString();
         //ui->label_date_1->setText(info_date_1);
         ui->label_day1_temp_low->setText(info_low_1);
         ui->label_day1_temp_high->setText(info_high_1);
         ui->label_day1_type->setText(info_type_1);
         if(info_type_1=="晴")
         {
             if(hour>=6 && hour <=18)
                 ui->label_day1_icon->setPixmap(QPixmap(":/icon/icon2/qing.png"));
             else ui->label_day1_icon->setPixmap(QPixmap(":/icon/icon2/qing_wanshang.png"));
         }
         if(info_type_1=="多云")
         {
             if(hour>=6 && hour <=18)
                ui->label_day1_icon->setPixmap(QPixmap(":/icon/icon2/duoyun_wanshang.png"));
             else ui->label_day1_icon->setPixmap(QPixmap(":/icon/icon2/duoyun.png"));
         }
         if(info_type_1=="阴")
            ui->label_day1_icon->setPixmap(QPixmap(":/icon/icon2/yin.png"));
         if(info_type_1=="小雨")
            ui->label_day1_icon->setPixmap(QPixmap(":/icon/icon2/xiaoyu.png"));
         if(info_type_1=="中雨")
            ui->label_day1_icon->setPixmap(QPixmap(":/icon/icon2/zhongyu.png"));
         if(info_type_1=="大雨" || info_type_1=="暴雨")
            ui->label_day1_icon->setPixmap(QPixmap(":/icon/icon2/dayu.png"));
         if(info_type_1=="阵雨")
         {
             if(hour>=6 && hour <=18)
                ui->label_day1_icon->setPixmap(QPixmap(":/icon/icon2/zhenyu.png"));
             else ui->label_day1_icon->setPixmap(QPixmap(":/icon/icon2/zhenyu_wanshang.png"));
         }
         if(info_type_1=="雾")
         {
             if(hour>=6 && hour <=18)
                ui->label_day1_icon->setPixmap(QPixmap(":/icon/icon2/zhenyu.png"));
             else ui->label_day1_icon->setPixmap(QPixmap(":/icon/icon2/zhenyu_wanshang.png"));
         }
         if(info_type_1=="小雪")
            ui->label_day1_icon->setPixmap(QPixmap(":/icon/icon2/xiaoxue.png"));
         if(info_type_1=="中雪")
            ui->label_day1_icon->setPixmap(QPixmap(":/icon/icon2/zhongxue.png"));
         if(info_type_1=="大雪")
            ui->label_day1_icon->setPixmap(QPixmap(":/icon/icon2/daxue.png"));
         if(info_type_1=="暴雪")
            ui->label_day1_icon->setPixmap(QPixmap(":/icon/icon2/baoxue.png"));
         if(info_type_1=="阵雪")
            ui->label_day1_icon->setPixmap(QPixmap(":/icon/icon2/zhenxue.png"));
         if(info_type_1=="雨加雪")
            ui->label_day1_icon->setPixmap(QPixmap(":/icon/icon2/yujiaxue.png"));
         if(info_type_1=="霾" || info_type_1=="雾霾")
            ui->label_day1_icon->setPixmap(QPixmap(":/icon/icon2/mai.png"));
         }
         {
         QJsonValue weather_value_2=forecast_arr.takeAt(0);
         QJsonObject weather_obj_2=weather_value_2.toObject();
         QString info_date_2=weather_obj_2.find("date").value().toString();
         QString info_wind_fl_2=weather_obj_2.find("fengli").value().toString();
         QString info_wind_fx_2=weather_obj_2.find("fengxiang").value().toString();
         QString info_high_2=weather_obj_2.find("high").value().toString();info_high_2=info_high_2.mid(3);
         QString info_low_2=weather_obj_2.find("low").value().toString();info_low_2=info_low_2.mid(3);
         QString info_type_2=weather_obj_2.find("type").value().toString();
         //ui->label_date_2->setText(info_date_2);
         ui->label_day2_temp_low->setText(info_low_2);
         ui->label_day2_temp_high->setText(info_high_2);
         ui->label_day2_type->setText(info_type_2);
         if(info_type_2=="晴")
         {
             if(hour>=6 && hour <=18)
                 ui->label_day2_icon->setPixmap(QPixmap(":/icon/icon2/qing.png"));
             else ui->label_day2_icon->setPixmap(QPixmap(":/icon/icon2/qing_wanshang.png"));
         }
         if(info_type_2=="多云")
         {
             if(hour>=6 && hour <=18)
                ui->label_day2_icon->setPixmap(QPixmap(":/icon/icon2/duoyun_wanshang.png"));
             else ui->label_day2_icon->setPixmap(QPixmap(":/icon/icon2/duoyun.png"));
         }
         if(info_type_2=="阴")
            ui->label_day2_icon->setPixmap(QPixmap(":/icon/icon2/yin.png"));
         if(info_type_2=="小雨")
            ui->label_day2_icon->setPixmap(QPixmap(":/icon/icon2/xiaoyu.png"));
         if(info_type_2=="中雨")
            ui->label_day2_icon->setPixmap(QPixmap(":/icon/icon2/zhongyu.png"));
         if(info_type_2=="大雨" || info_type_2=="暴雨")
            ui->label_day2_icon->setPixmap(QPixmap(":/icon/icon2/dayu.png"));
         if(info_type_2=="阵雨")
         {
             if(hour>=6 && hour <=18)
                ui->label_day2_icon->setPixmap(QPixmap(":/icon/icon2/zhenyu.png"));
             else ui->label_day2_icon->setPixmap(QPixmap(":/icon/icon2/zhenyu_wanshang.png"));
         }
         if(info_type_2=="雾")
         {
             if(hour>=6 && hour <=18)
                ui->label_day2_icon->setPixmap(QPixmap(":/icon/icon2/zhenyu.png"));
             else ui->label_day2_icon->setPixmap(QPixmap(":/icon/icon2/zhenyu_wanshang.png"));
         }
         if(info_type_2=="小雪")
            ui->label_day2_icon->setPixmap(QPixmap(":/icon/icon2/xiaoxue.png"));
         if(info_type_2=="中雪")
            ui->label_day2_icon->setPixmap(QPixmap(":/icon/icon2/zhongxue.png"));
         if(info_type_2=="大雪")
            ui->label_day2_icon->setPixmap(QPixmap(":/icon/icon2/daxue.png"));
         if(info_type_2=="暴雪")
            ui->label_day2_icon->setPixmap(QPixmap(":/icon/icon2/baoxue.png"));
         if(info_type_2=="阵雪")
            ui->label_day2_icon->setPixmap(QPixmap(":/icon/icon2/zhenxue.png"));
         if(info_type_2=="雨加雪")
            ui->label_day2_icon->setPixmap(QPixmap(":/icon/icon2/yujiaxue.png"));
         if(info_type_2=="霾" || info_type_2=="雾霾")
            ui->label_day2_icon->setPixmap(QPixmap(":/icon/icon2/mai.png"));
         }
     }
     else
     {
         qFatal(error.errorString().toUtf8().constData());
         exit(1);
     }//解析第2层json
     GetTime();
}
Exemplo n.º 8
0
TEST(Json, JsonGetMapFromString) {
  std::string json_str("{\"1\":\"2\"}");
  json json_obj(json_str);
  auto json_map = json_obj.get_map();
  EXPECT_EQ(std::string("2"), json_map[std::string("1")]);
}
Exemplo n.º 9
0
TEST(Json, JsonGetKeyFromString) {
  std::string json_str("{\"1\":\"2\",\"3\":\"4\"}");
  json json_obj(json_str);
  auto result_string = json_obj.get_key_from_map(std::string("1"));
  EXPECT_EQ(std::string("2"), result_string);
}
Exemplo n.º 10
0
void BookEditDialog::on_btnOk_clicked()  //提交按钮
{

    QString id = ui->idEdit->text().trimmed();
    QString name = ui->nameEdit->text().trimmed();
    QString author = ui->authorEdit->text().trimmed();
    int type = Tool::getInstance()->bookClass[ui->typeBox->currentText()].id;
    QString press = ui->publisherEdit->text().trimmed();
    QString date = ui->dateEdit->date().toString("yyyy-MM-dd");
    if(id==""||name==""||author==""||press==""||ui->priceEdit->text().trimmed()==""||
            ui->pageEdit->text().trimmed()==""||ui->bookCaseEdit->text().trimmed()==""){
        StyleTool::getInstance()->messageBoxError("输入信息不完整!");
    }
    double price = ui->priceEdit->text().trimmed().toDouble();
    int page = ui->pageEdit->text().trimmed().toInt();
    int bookCase = ui->bookCaseEdit->text().trimmed().toInt();
    int num = ui->numLabel->text().toInt();
    QJsonArray array;
    array.append(id);
    array.append(name);
    array.append(type);
    array.append(author);
    array.append(press);
    array.append(date);
    array.append(price);
    array.append(page);
    array.append(bookCase);
    array.append(num);
    if(currentId!="")
    {
        array.append(currentId);
    }
    QJsonDocument document;
    document.setArray(array);
    QString json_str(document.toJson());
    QByteArray postData =  Tool::getInstance()->getRequestData(
                QStringList()<<"data",QStringList()<<json_str);
    QNetworkRequest req;
    if(currentId=="")
        req.setUrl(QUrl(Tool::urlRoot+"book/new"));
    else
        req.setUrl(QUrl(Tool::urlRoot+"book/change"));
    req.setHeader(QNetworkRequest::ContentTypeHeader,"application/x-www-form-urlencoded");
    netManager->post(req,postData);


//    QString sql;
//    if(editType==1){
//        sql = "update 图书 set 书名=:name,图书类型=:type,作者=:author,出版社=:publisher,出版日期=:date,价格=:price,页码=:page,所在书架=:bookCase,馆藏总数=:allNum,在馆数=:nowNum where 图书条形码=:id";
//    }else{
//        sql = "insert into 图书 values(:id,:name,:type,:author,:publisher,:date,:price,:page,:bookCase,:allNum,:nowNum)";
//    }
//    QSqlQuery query(Tool::getInstance()->getDb());
//    query.prepare(sql);
//    query.bindValue(":id",id);
//    query.bindValue(":name",name);
//    query.bindValue(":type",type);
//    query.bindValue(":author",author);
//    query.bindValue(":publisher",publisher);
//    query.bindValue(":date",date);
//    query.bindValue(":price",price);
//    query.bindValue(":page",page);
//    query.bindValue(":bookCase",bookCase);
//    query.bindValue(":allNum",num);
//    if(editType==1)
//        query.bindValue(":nowNum",bookData->nowNum);
//    else
//        query.bindValue(":nowNum",num);
//    query.exec();
//    qDebug()<<query.lastQuery();
//    StyleTool::getInstance()->messageBoxInfo("执行成功!");
//    this->close();
//    done(1);

}