向 json 添加尾随换行符

Adding a trailing linefeed to json

我正在使用 serde 将一些数据序列化为 json 格式的文件:

let json = serde_json::to_string_pretty(&data).unwrap();
std::fs::write(&path, &json).expect("Unable to write json file");

向文件添加结尾换行符的最佳方法是什么?

std::fs::write只是方便API。您可以自己写入文件,在这种情况下,您可以在 json_serde 完成写入后简单地添加一个换行符,例如:

pub fn save(path: impl AsRef<Path>, data: &impl Serialize) -> std::io::Result<()> {
    let mut w = BufWriter::new(File::create(path)?);
    serde_json::to_writer_pretty(&mut w, data)?;
    w.write(b"\n")?;
    w.flush()?;
    Ok(())
}

Playground