Struct actix_web::Json [] [src]

pub struct Json<T>(pub T);

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.

Methods

impl<T> Json<T>
[src]

[src]

Deconstruct to an inner value

Trait Implementations

impl<T> Deref for Json<T>
[src]

The resulting type after dereferencing.

Important traits for &'a mut W
[src]

Dereferences the value.

impl<T> DerefMut for Json<T>
[src]

Important traits for &'a mut W
[src]

Mutably dereferences the value.

impl<T> Debug for Json<T> where
    T: Debug
[src]

[src]

Formats the value using the given formatter. Read more

impl<T> Display for Json<T> where
    T: Display
[src]

[src]

Formats the value using the given formatter. Read more

impl<T: Serialize> Responder for Json<T>
[src]

The Json type allows you to respond with well-formed JSON data: simply return a value of type Json where T is the type of a structure to serialize into JSON. The type T must implement the Serialize trait from serde.

#[derive(Serialize)]
struct MyObj {
    name: String,
}

fn index(req: HttpRequest) -> Result<Json<MyObj>> {
    Ok(Json(MyObj{name: req.match_info().query("name")?}))
}

The associated item which can be returned.

The associated error which can be returned.

[src]

Convert itself to Reply or Error.

impl<T, S> FromRequest<S> for Json<T> where
    T: DeserializeOwned + 'static,
    S: 'static, 
[src]

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::{App, Json, Result, http};

#[derive(Deserialize)]
struct Info {
    username: String,
}

/// deserialize `Info` from request's body
fn index(info: Json<Info>) -> Result<String> {
    Ok(format!("Welcome {}!", info.username))
}

fn main() {
    let app = App::new().resource(
       "/index.html",
       |r| r.method(http::Method::POST).with(index));  // <- use `with` extractor
}

Configuration for conversion process

Future that resolves to a Self

[src]

Convert request to a Self

Auto Trait Implementations

impl<T> Send for Json<T> where
    T: Send

impl<T> Sync for Json<T> where
    T: Sync