[][src]Struct actix_web::Json

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.

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
}

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")?,
    }))
}

Methods

impl<T> Json<T>
[src]

Deconstruct to an inner value

Trait Implementations

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

The associated item which can be returned.

The associated error which can be returned.

Convert itself to AsyncResult or Error.

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

Configuration for conversion process

Future that resolves to a Self

Convert request to a Self

Convert request to a Self Read more

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

Formats the value using the given formatter. Read more

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

Formats the value using the given formatter. Read more

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

The resulting type after dereferencing.

Dereferences the value.

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

Mutably dereferences the value.

Auto Trait Implementations

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

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

Blanket Implementations

impl<T> ToString for T where
    T: Display + ?Sized
[src]

Converts the given value to a String. Read more

impl<T> From for T
[src]

Performs the conversion.

impl<T, U> Into for T where
    U: From<T>, 
[src]

Performs the conversion.

impl<T, U> TryFrom for T where
    T: From<U>, 
[src]

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

🔬 This is a nightly-only experimental API. (try_from)

Performs the conversion.

impl<T> Borrow for T where
    T: ?Sized
[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut for T where
    T: ?Sized
[src]

Mutably borrows from an owned value. Read more

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

🔬 This is a nightly-only experimental API. (try_from)

Performs the conversion.

impl<T> Any for T where
    T: 'static + ?Sized
[src]

🔬 This is a nightly-only experimental API. (get_type_id)

this method will likely be replaced by an associated static

Gets the TypeId of self. Read more

impl<T> Erased for T