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")]); }
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; }
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(); }
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(); }
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); }
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); }
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(); }
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")]); }
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); }
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); }