Expand description
Serde module for fields that carry stringified JSON on the wire.
Use #[serde(with = "api_bones::serde::json_string")] to transparently
serialize any T: Serialize as a JSON string and deserialize a JSON
string back into T: DeserializeOwned.
§Wire format
{ "payload": "{\"key\":\"value\"}" }§Examples
use serde::{Deserialize, Serialize};
#[derive(Debug, PartialEq, Serialize, Deserialize)]
struct Inner {
key: String,
}
#[derive(Debug, PartialEq, Serialize, Deserialize)]
struct Outer {
#[serde(with = "api_bones::serde::json_string")]
payload: Inner,
}
let outer = Outer { payload: Inner { key: "value".to_string() } };
let json = serde_json::to_string(&outer).unwrap();
assert_eq!(json, r#"{"payload":"{\"key\":\"value\"}"}"#);
let back: Outer = serde_json::from_str(&json).unwrap();
assert_eq!(back, outer);Functions§
- deserialize
- Deserialize a JSON string into
T. - serialize
- Serialize
valueas a JSON string.