Created
March 13, 2021 16:31
-
-
Save reu/07cfd78c10c2f51e270b67888aa78fee to your computer and use it in GitHub Desktop.
Serde double encoding JSON
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
mod as_json_string { | |
use serde::de::{Deserialize, DeserializeOwned, Deserializer}; | |
use serde::ser::{Serialize, Serializer}; | |
use serde_json; | |
pub fn serialize<T: Serialize, S: Serializer>( | |
value: &T, | |
serializer: S, | |
) -> Result<S::Ok, S::Error> { | |
let json = serde_json::to_string(value).map_err(serde::ser::Error::custom)?; | |
json.serialize(serializer) | |
} | |
pub fn deserialize<'de, T: DeserializeOwned, D: Deserializer<'de>>( | |
deserializer: D, | |
) -> Result<T, D::Error> { | |
let json = String::deserialize(deserializer)?; | |
serde_json::from_str(&json).map_err(serde::de::Error::custom) | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment