![](/img/trans.png)
[英]Is it possible to flatten sub-object fields while parsing with serde_json?
[英]Parsing an object inside an object with serde_json
我被卡住了,下面是我收到的JSON:
{
"BCH": {
"aclass": "currency",
"altname": "BCH",
"decimals": 10,
"display_decimals": 5
}
}
我對我的結構應該如何使用serde_json
包解析屬性感到困惑。 以下是我目前的情況:
#[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()
}
我收到一條錯誤消息:
線程'main'在'
Err
值'上調用'Result::unwrap()
unwrapResult::unwrap()
時出錯:ErrorImpl {code:Message(“missing fieldassest
”),line:0,column:0}',src / libcore / result.rs: 860:4
我想你想要一個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);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.