I am stuck, below is the JSON which I am receiving:
{
"BCH": {
"aclass": "currency",
"altname": "BCH",
"decimals": 10,
"display_decimals": 5
}
}
I am bit confused on how my struct should look like to parse the attributes using theserde_json
crate. Below is what I currently have:
#[derive(Deserialize, Debug)]
struct Assets {
aclass: String,
altname: String,
decimals: u8,
display_decimals: u8,
}
#[derive(Deserialize, Debug)]
struct Currency {
assest: Assets,
}
fn to_assets_type(value: serde_json::Value) -> Currency {
serde_json::from_value(value).unwrap()
}
I am getting an error message:
thread 'main' panicked at 'called
Result::unwrap()
on anErr
value: ErrorImpl { code: Message("missing fieldassest
"), line: 0, column: 0 }', src/libcore/result.rs:860:4
I think you want a HashMap.
#[macro_use] extern crate serde;
extern crate serde_json;
use std::collections::HashMap;
static VALUE: &str = r#"{
"BCH": {
"aclass": "currency",
"altname": "BCH",
"decimals": 10,
"display_decimals": 5
}
}"#;
#[derive(Deserialize, Debug)]
struct Assets {
aclass: String,
altname: String,
decimals: u8,
display_decimals: u8,
}
fn main() {
let serde_value: HashMap<String, Assets> = serde_json::from_str(VALUE).unwrap();
println!("{:?}", serde_value);
}
playground
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With