pub struct Json<T>(pub T);
Expand description
Json helper
Json can be used for two different purpose. First is for json response generation and second is for extracting typed information from request’s payload.
To extract typed information from request’s body, the type T
must
implement the Deserialize
trait from serde.
JsonConfig allows to configure extraction process.
§Example
use ntex::web;
#[derive(serde::Deserialize)]
struct Info {
username: String,
}
/// deserialize `Info` from request's body
async fn index(info: web::types::Json<Info>) -> String {
format!("Welcome {}!", info.username)
}
fn main() {
let app = web::App::new().service(
web::resource("/index.html").route(
web::post().to(index))
);
}
The Json
type allows you to respond with well-formed JSON data: simply
return a value of type JsonT
must implement the Serialize
trait from serde.
use ntex::web;
#[derive(serde::Serialize)]
struct MyObj {
name: String,
}
fn index(req: web::HttpRequest) -> Result<web::types::Json<MyObj>, std::io::Error> {
Ok(web::types::Json(MyObj {
name: req.match_info().get("name").unwrap().to_string(),
}))
}
Tuple Fields§
§0: T
Implementations§
source§impl<T> Json<T>
impl<T> Json<T>
sourcepub fn into_inner(self) -> T
pub fn into_inner(self) -> T
Deconstruct to an inner value
Trait Implementations§
source§impl<T, Err: ErrorRenderer> FromRequest<Err> for Json<T>where
T: DeserializeOwned + 'static,
impl<T, Err: ErrorRenderer> FromRequest<Err> for Json<T>where
T: DeserializeOwned + 'static,
Json extractor. Allow to extract typed information from request’s payload.
To extract typed information from request’s body, the type T
must
implement the Deserialize
trait from serde.
JsonConfig allows to configure extraction process.
§Example
use ntex::web;
#[derive(serde::Deserialize)]
struct Info {
username: String,
}
/// deserialize `Info` from request's body
async fn index(info: web::types::Json<Info>) -> String {
format!("Welcome {}!", info.username)
}
fn main() {
let app = web::App::new().service(
web::resource("/index.html").route(
web::post().to(index))
);
}