json - 使用 serde_json 解析对象内部的对象

标签 json rust serde hyper serde-json

我卡住了,下面是我收到的 JSON:

{
   "BCH": {
      "aclass": "currency",
      "altname": "BCH",
      "decimals": 10,
      "display_decimals": 5
   }
}

我对我的结构应该如何使用 serde_json crate 解析属性感到困惑。以下是我目前拥有的:

#[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()
}

我收到一条错误消息:

thread 'main' panicked at 'called Result::unwrap() on an Err value: 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);
}

playground

关于json - 使用 serde_json 解析对象内部的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46074324/

相关文章:

php - 我动态地在多列中拆分单日的 Fullcalendar View

java - Gson 序列化多态对象列表

rust - 在结构内部向下转换Box <dyn ForeignTrait>?

rust - 使用Box对结构进行反序列化

rust - 使用 serde::from_value 反序列化为泛型类型

rust - 函数返回 serde 反序列化类型时如何修复生命周期错误?

javascript - 如何插入json数组?

python - 谷歌应用引擎: Python: WebOb: How to get POST data in JSON format?

rust - 如何检查一个路径是否是另一个路径的子目录?

rust - 从 &str 转换为 OsStr 的正确方法是什么?