Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- extern crate serde_derive;
- extern crate serde;
- extern crate serde_json;
- use serde::{Serialize, Deserialize};
- #[derive(Serialize, Deserialize)]
- pub struct A<'a> {
- pub v: &'a str
- }
- impl<'a> std::fmt::Display for A<'a> {
- fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
- write!(f, "A{{v: {}}}", self.v)
- }
- }
- fn main() {
- // ex 1 works fine
- let a1 = A{v: "hello"};
- let v1 = serde_json::to_string(&a1).unwrap();
- let deser_value1 = serde_json::from_str::<A>(&v1).unwrap();
- println!("deser1: {}", deser_value1);
- // ex 2
- let v2 = r#"{"v":"hel\"lo"}"#;
- let deser_value2 = serde_json::from_str::<A>(&v2).unwrap();
- println!("deser2: {}", deser_value2);
- // ex 3 runtime error
- let a3 = A{v: "hel\"lo"};
- let v3 = serde_json::to_string(&a3).unwrap();
- let deser_value3 = serde_json::from_str::<A>(&v3).unwrap();
- println!("deser3: {}", deser_value3);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement