【发布时间】:2022-11-10 16:50:26
【问题描述】:
我正在写一个文字游戏,需要解析和编辑 json 文件。我关注Docs,但出现错误。
这是我的 json 文件:
{
"total_rounds": 6,
"games": [
{
"answer": "POSER",
"guesses": [
"HELLO",
"CRANE",
"POWER",
"POKER",
"POSER"
]
}
}
我的代码是从 serde_json 文档重写的。
use std::{fs::File, io::BufReader};
use crate::Opt;
use serde::Deserialize;
use serde::Serialize;
use serde_json::Value;
#[derive(Serialize, Deserialize)]
pub struct State {
total_rounds: i32,
games: Vec<Game>,
}
#[derive(Serialize, Deserialize)]
pub struct Game {
answer: String,
guesses: Vec<String>,
}
pub fn get_json(opt: Opt) -> State {
let file = File::open(opt.state.unwrap()).unwrap();
let reader = BufReader::new(file);
let state: State= serde_json::from_reader(reader).unwrap();
return state;
}
有四个类似的错误。
error: cannot find derive macro `Serialize` in this scope
--> src/json_parse.rs:8:10
|
8 | #[derive(Serialize, Deserialize)]
| ^^^^^^^^^
|
note: `Serialize` is imported here, but it is only a trait, without a derive macro
--> src/json_parse.rs:5:5
|
5 | use serde::Serialize;
| ^^^^^^^^^^^^^^^^
货运.toml
[dependencies]
atty = "0.2"
serde_json = "1.0.83"
console = "0.15"
rand = "0.8.5"
text_io = "0.1.12"
structopt = "0.3.26"
serde = "1.0.144"
【问题讨论】:
-
您的 Cargo.toml 中有什么?
标签: rust