实例-rust-将数据写入json文件
Cargo.toml
[package]
name = "rust-example5"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
peroxide = "0.31.6"
serde = { version = "1.0.133", features = ["derive"] }
serde_json = "1.0.75"
main.rs
#![allow(non_snake_case)]
// #[macro_use]
extern crate peroxide;
use peroxide::fuga::*;
use std::fs::File;
use std::io::prelude::*;
use std::io::BufReader;
use std::io::BufWriter;
//
use serde::Deserialize; // Input
use serde::Serialize; // Output
use serde_json::from_reader;
use serde_json::to_string_pretty;
fn main() -> Result<(), Box<dyn Error>> {
let x1_ = 1;
let vx1_ = vec![1.0,2.0,3.0];
let vvx1_ = vec![vec![1.0,2.0,3.0]];
let Data_Write_To_Input = WriteToInput {
x1:&x1_,
vx1: &vx1_,
vvx1: &vvx1_,
};
let Data_Write_To_Input_Out = to_string_pretty::<WriteToInput>(&Data_Write_To_Input)?;
let mut Data_Write_To_Input_In = BufWriter::new(File::create("input.json")?);
write!(&mut Data_Write_To_Input_In, "{}", Data_Write_To_Input_Out)?;
/////从input.json文件读取输入数据
let Data_Read_From_Input = BufReader::new(File::open("input.json")?);
let InputData {
x1,
vx1,
vvx1,
} = from_reader::<_, InputData>(Data_Read_From_Input)?;
println!("{:?},{:?},{:?}", x1,vx1,vvx1);
// /////将结果写入ouput.json
// let Data_Write_To_Output = OutputData {
// x1:&x1,
// vx1: &vx1,
// vvx1: &vvx1,
// };
// let Data_Write_To_Output_Out = to_string_pretty::<OutputData>(&Data_Write_To_Output)?;
// let mut Data_Write_To_Output_In = BufWriter::new(File::create("output.json")?);
// write!(&mut Data_Write_To_Output_In, "{}", Data_Write_To_Output_Out)?;
// println!("ok!");
Ok(())
}
/////////////////////////////////////////////////////
#[derive(Serialize, Debug)]
struct WriteToInput<'a> {
x1:&'a i32,
vx1: &'a Vec<f64>,
vvx1: &'a Vec<Vec<f64>>,
}
#[derive(Deserialize)]
struct InputData {
x1: i32,
vx1: Vec<f64>,
vvx1: Vec<Vec<f64>>,
}
#[derive(Serialize, Debug)]
struct OutputData<'a> {
x1:&'a i32,
vx1: &'a Vec<f64>,
vvx1: &'a Vec<Vec<f64>>,
}
分类:
Rust
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话