解析对象的对象中有serde_json
问题描述:
我卡住了,下面是我收到的JSON:解析对象的对象中有serde_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()
}
我收到一条错误消息:
线程“主”惊慌失措上
Err
值“叫Result::unwrap()
:ErrorImpl {码信息(“失踪现场assest
“),行:0, 列: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);
}
+0
非常感谢朋友,它工作得很好。 :) – BalaB
看起来你'json'是一个对象内部的对象.... – Malice
我现在不能测试我的直觉,但我想你应该尝试重命名你的'Currency'资产领域'BCH'。 – Boiethios
BCH不是静态的 – BalaB