Rust 如何从use actix_web::HttpRequest获取json到结构中?

Rust 如何从use actix_web::HttpRequest获取json到结构中?,rust,actix-web,Rust,Actix Web,将json从HttpRequest获取到您创建的结构中的最简单方法是什么。这是主菜单 #[actix_rt::main] async fn main() -> std::io::Result<()> { HttpServer::new(|| { App::new() .data(web::JsonConfig::default().limit(4096)) .data(connect()) .service(web::resour

将json从HttpRequest获取到您创建的结构中的最简单方法是什么。这是主菜单

#[actix_rt::main]
async fn main() -> std::io::Result<()> {
  HttpServer::new(|| {
    App::new()
      .data(web::JsonConfig::default().limit(4096))
      .data(connect())
      .service(web::resource("/insert").route(web::post().to(handlers::tours::insert)))
  })
  .bind("127.0.0.1:8088")
  .unwrap()
  .run()
  .await
}
这是handlers/tours中的处理程序。rs::

pub async fn insert(
  tour_form: web::Json<TourForm>,
  pool: web::Data<MysqlPool>,
) -> Result<HttpResponse, HttpResponse> {
  Ok(HttpResponse::Ok().json(&tour_form.name))
}

我应该在TourForm结构中实现FromRequest函数还是有更简单的方法?

我可以通过执行TourForm.0从web::Json中获取TourForm对象

pub async fn insert(
  tour_form: web::Json<TourForm>,
  pool: web::Data<MysqlPool>,
) -> Result<HttpResponse, HttpResponse> {
  Ok(HttpResponse::Ok().json(&tour_form.0))
}
pub异步fn插入(
旅游形式:web::Json,
池:web::Data,
)->结果{
Ok(HttpResponse::Ok().json(&tour_form.0))
}
pub async fn insert(
  tour_form: TourForm,
  pool: web::Data<MysqlPool>,
) -> Result<HttpResponse, HttpResponse> {
  Ok(HttpResponse::Ok().json(&tour_form.name))
}
^^ the trait `actix_web::extract::FromRequest` is not implemented for `model::tour::TourForm`
pub async fn insert(
  tour_form: web::Json<TourForm>,
  pool: web::Data<MysqlPool>,
) -> Result<HttpResponse, HttpResponse> {
  Ok(HttpResponse::Ok().json(&tour_form.0))
}