[−][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
use actix_web::{web, App}; use serde_derive::Deserialize; #[derive(Deserialize)] struct Info { username: String, } /// deserialize `Info` from request's body async 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.
use actix_web::*; use serde_derive::Serialize; #[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(), })) }
Implementations
impl<T> Json<T>
[src]
pub fn into_inner(self) -> T
[src]
Deconstruct to an inner value
Trait Implementations
impl<T> Debug for Json<T> where
T: Debug,
[src]
T: Debug,
impl<T> Deref for Json<T>
[src]
impl<T> DerefMut for Json<T>
[src]
impl<T> Display for Json<T> where
T: Display,
[src]
T: Display,
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
use actix_web::{web, App}; use serde_derive::Deserialize; #[derive(Deserialize)] struct Info { username: String, } /// deserialize `Info` from request's body async 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 = JsonExtractFut<T>
Future that resolves to a Self
type Config = JsonConfig
Configuration for this extractor
pub fn from_request(req: &HttpRequest, payload: &mut Payload) -> Self::Future
[src]
pub fn extract(req: &HttpRequest) -> Self::Future
[src]
pub 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 = Ready<Result<Response, Error>>
The future response value.
pub fn respond_to(self, _: &HttpRequest) -> Self::Future
[src]
pub fn with_status(self, status: StatusCode) -> CustomResponder<Self> where
Self: Sized,
[src]
Self: Sized,
pub fn with_header<K, V>(self, key: K, value: V) -> CustomResponder<Self> where
Self: Sized,
HeaderName: TryFrom<K>,
<HeaderName as TryFrom<K>>::Error: Into<HttpError>,
V: IntoHeaderValue,
[src]
Self: Sized,
HeaderName: TryFrom<K>,
<HeaderName as TryFrom<K>>::Error: Into<HttpError>,
V: IntoHeaderValue,
Auto Trait Implementations
impl<T> RefUnwindSafe for Json<T> where
T: RefUnwindSafe,
[src]
T: RefUnwindSafe,
impl<T> Send for Json<T> where
T: Send,
[src]
T: Send,
impl<T> Sync for Json<T> where
T: Sync,
[src]
T: Sync,
impl<T> Unpin for Json<T> where
T: Unpin,
[src]
T: Unpin,
impl<T> UnwindSafe for Json<T> where
T: UnwindSafe,
[src]
T: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Same<T> for T
type Output = T
Should always be Self
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.
pub 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.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,