簡體   English   中英

使用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() unwrap Result::unwrap()時出錯:ErrorImpl {code:Message(“missing field assest ”),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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM