У меня есть настраиваемое поле в моем JSON
, которое становится динамическим и должно быть проанализировано для структуры, которая имеет поле HashMap
, подобное следующему:
#[macro_use]
extern crate serde_derive;
extern crate serde;
extern crate serde_json;
use std::collections::HashMap;
#[derive(Serialize, Deserialize)]
struct MyStruct {
field1: String,
custom: HashMap<String, String>,
}
fn main() {
let json_string = r#"{"field1":"3","custom":{"custom1":"15000","custom2":"60"}}"#;
let my_struct = serde_json::from_str::<MyStruct>(json_string).unwrap();
println!("{}", serde_json::to_string(&my_struct).unwrap());
}
Он работает, когда моя строка json имеет строковые поля в настраиваемом поле, которые можно легко проанализировать в строку.
Но проблема в том, что моя строка json:
let json_string_wrong = r#"{"field1":"3","custom":{"custom1":15000,"custom2":"60"}}"#; // Need to parse this
Как обрабатывать такие отливки в серде?