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::default().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 Json<T> where T is the type of a structure
to serialize into JSON. The type T 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: TImplementations§
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<St, T> FromRequest<St> for Json<T>where
St: State,
T: DeserializeOwned + 'static,
Json extractor. Allow to extract typed information from request’s
payload.
impl<St, T> FromRequest<St> for Json<T>where
St: State,
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::default().service(
web::resource("/index.html").route(
web::post().to(index))
);
}