gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 07:53:09 31 4
gpt4 key购买 nike

我卡住了,下面是我收到的 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/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com