Rust格式化JSON文件并输出

简单的格式化JSON文件并输出到标准输出:

//格式化第一个命令行参数指定JSON文件,打印到标准输出
fn main() {
    let args: Vec<String> = std::env::args().collect();
    if args.len() < 2{
        println!("命令行参数个数不足,请检查输入参数!");
    }else{
        let path = args.get(1).unwrap();
        let contents=std::fs::read_to_string(path).expect("读取指定JSON文件失败!");
        let parsed = json::parse(&contents).expect("解析指定JSON文件失败!");
        print!("{}",json::stringify_pretty(parsed,4));//根据自己的习惯指定4个空格的缩进
    }    
}

serde_jsonRust语言中一个用于序列化和反序列化JSON数据的库。它提供了一组简单易用的API,可以将Rust结构体或其他数据类型换为JSON格式,并将其写入到文件中。 要使用serde_json库进行JSON写入,首先需要在Cargo.toml文件中添加serde_json依赖项。可以通过以下方式添加: ```toml [dependencies] serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" ``` 接下来,在Rust代码中导入所需的模块: ```rust use serde::{Serialize, Deserialize}; use serde_json::{Result, Value}; use std::fs::File; use std::io::prelude::*; ``` 然后,定义一个结构体或其他数据类型,并实现Serialize trait以支持序列化为JSON。例如,我们定义一个名为Person的结构体: ```rust #[derive(Serialize, Deserialize)] struct Person { name: String, age: u32, address: String, } ``` 接下来,可以创建一个Person对象,并将其序列化为JSON字符串: ```rust fn main() -> Result<()> { let person = Person { name: "John".to_string(), age: 30, address: "123 Street".to_string(), }; let json_string = serde_json::to_string(&person)?; // 将JSON字符串写入文件 let mut file = File::create("person.json")?; file.write_all(json_string.as_bytes())?; Ok(()) } ``` 在上述示例中,我们使用serde_json的to_string函数将Person对象序列化为JSON字符串。然后,我们创建一个文件并将JSON字符串写入该文件。 需要注意的是,上述示例中的代码可能会返回Result类型,因此需要处理潜在的错误。可以使用?运算符来简化错误处理。 希望以上信息对你有所帮助!如果你有任何其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值