[−][src]Struct actix_web::web::Json
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
#[macro_use] extern crate serde_derive; use actix_web::{web, App}; #[derive(Deserialize)] struct Info { username: String, } /// deserialize `Info` from request's body fn index(info: web::Json<Info>) -> String { format!("Welcome {}!", info.username) } fn main() { let app = 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.
#[derive(Serialize)] struct MyObj { name: String, } fn index(req: HttpRequest) -> Result<web::Json<MyObj>> { Ok(web::Json(MyObj { name: req.match_info().get("name").unwrap().to_string(), })) }
Methods
impl<T> Json<T>
[src]
pub fn into_inner(self) -> T
[src]
Deconstruct to an inner value
Trait Implementations
impl<T> FromRequest for Json<T> where
T: DeserializeOwned + 'static,
[src]
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
#[macro_use] extern crate serde_derive; use actix_web::{web, App}; #[derive(Deserialize)] struct Info { username: String, } /// deserialize `Info` from request's body fn index(info: web::Json<Info>) -> String { format!("Welcome {}!", info.username) } fn main() { let app = App::new().service( web::resource("/index.html").route( web::post().to(index)) ); }
type Error = Error
The associated error which can be returned.
type Future = Box<dyn Future<Item = Self, Error = Error>>
Future that resolves to a Self
type Config = JsonConfig
Configuration for this extractor
fn from_request(req: &HttpRequest, payload: &mut Payload) -> Self::Future
[src]
fn extract(req: &HttpRequest) -> Self::Future
[src]
fn configure<F>(f: F) -> Self::Config where
F: FnOnce(Self::Config) -> Self::Config,
[src]
F: FnOnce(Self::Config) -> Self::Config,
impl<T: Serialize> Responder for Json<T>
[src]
type Error = Error
The associated error which can be returned.
type Future = Result<Response, Error>
The future response value.
fn respond_to(self, _: &HttpRequest) -> Self::Future
[src]
fn with_status(self, status: StatusCode) -> CustomResponder<Self> where
Self: Sized,
[src]
Self: Sized,
fn with_header<K, V>(self, key: K, value: V) -> CustomResponder<Self> where
Self: Sized,
HeaderName: HttpTryFrom<K>,
V: IntoHeaderValue,
[src]
Self: Sized,
HeaderName: HttpTryFrom<K>,
V: IntoHeaderValue,
impl<T> Deref for Json<T>
[src]
impl<T> DerefMut for Json<T>
[src]
impl<T> Debug for Json<T> where
T: Debug,
[src]
T: Debug,
impl<T> Display for Json<T> where
T: Display,
[src]
T: Display,
Auto Trait Implementations
impl<T> Send for Json<T> where
T: Send,
T: Send,
impl<T> Unpin for Json<T> where
T: Unpin,
T: Unpin,
impl<T> Sync for Json<T> where
T: Sync,
T: Sync,
impl<T> UnwindSafe for Json<T> where
T: UnwindSafe,
T: UnwindSafe,
impl<T> RefUnwindSafe for Json<T> where
T: RefUnwindSafe,
T: RefUnwindSafe,
Blanket Implementations
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From<T> for T
[src]
impl<T> ToString for T where
T: Display + ?Sized,
[src]
T: Display + ?Sized,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Erased for T
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,
fn vzip(self) -> V
impl<T, A, P> Access<T> for P where
A: Access<T>,
P: Deref<Target = A>,
[src]
A: Access<T>,
P: Deref<Target = A>,
type Guard = <A as Access<T>>::Guard
A guard object containing the value and keeping it alive. Read more
fn load(&self) -> <P as Access<T>>::Guard
[src]
impl<T, A> DynAccess<T> for A where
A: Access<T>,
<A as Access<T>>::Guard: 'static,
[src]
A: Access<T>,
<A as Access<T>>::Guard: 'static,