rust serde_json -如何使我结构体从json转换为json?

dxxyhpgq  于 2022-11-12  发布在  其他
关注(0)|答案(2)|浏览(207)

看看the documentation of serde_json,我不明白我必须实现什么特征才能使一个结构体序列化到json和从json反序列化。显而易见的答案可能是DeserializerSerializer,但这些是结构体,而不是特征。
使用rustc-serialize,我可以实现ToJsonFromJson特性。

nwnhqdif

nwnhqdif1#

crate index page
Serde通过序列化API提供了一种低样本序列化和JSON值反序列化的机制。为了能够序列化一段数据,它必须实现serde::Serialize特征。为了能够反序列化一段数据,它必须实现serde::Deserialize特征。Serde提供了一个注解来自动生成这些特征的代码:#[derive(Serialize, Deserialize)] .
--通过序列化数据结构创建Json

nqwrtyyt

nqwrtyyt2#

要将结构反序列化为json文件,请运行类似于以下代码的代码:

let struct = Struct::create();
let slice_string_in_json_format = serde_json::to_string(&struct);

要将json文件组件序列化为结构体,您可以使用类似的模式:

fn parsing_json_into_struct() -> Result<Struct> {

    // Open the json file
    let mut file_content = match File::open("file.json") {
        Ok(
            file) => file,  
            Err(_) => panic!("Could not read the json file")
    };

    // Transform content of the file into a string 
    let mut contents = String::new();
    match file_content.read_to_string(&mut contents)
     {
        Ok(_) => {},
        Err(err) => panic!("Could not deserialize the file, error code: {}", err)
    };

    let module: Result<Struct> = serde_json::from_str(&contents.as_str());
    module
}

相关问题