Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
反序列化JSON并将叶数据放入Rc结构的最佳方法是什么?_Json_Rust_Reference Counting_Serde - Fatal编程技术网

反序列化JSON并将叶数据放入Rc结构的最佳方法是什么?

反序列化JSON并将叶数据放入Rc结构的最佳方法是什么?,json,rust,reference-counting,serde,Json,Rust,Reference Counting,Serde,我有一个JSON文件,其中包含一些重复的对象结构和字符串,如下所示 { "array": [ { "data": [ "blih", "blah", "bloh" ] }, ... ] } 我对Rust的最佳理解是将JSON反序列化为一组结构,然后将数据复制到另一组结构中,其中包括Rc: //json结构 #[派生(序列化、反序列化)] 结构ArrayJson{

我有一个JSON文件,其中包含一些重复的对象结构和字符串,如下所示

{
  "array": [
    {
      "data": [
            "blih",
            "blah",
            "bloh"
        ]
    },
    ...
  ]
}
我对Rust的最佳理解是将JSON反序列化为一组结构,然后将数据复制到另一组结构中,其中包括
Rc

//json结构
#[派生(序列化、反序列化)]
结构ArrayJson{
数组:Vec,
}
#[派生(序列化、反序列化)]
结构数据JSON{
资料来源:Vec,
}
//钢筋混凝土结构
结构阵列{
数组:Vec,
}
结构数据{
资料来源:Vec,
}
有没有一种方法我不能创建两组结构,而只创建一组

更新:我相信serde的
rc
不是我想要的,因为它序列化和反序列化了实际的
rc
结构

序列化包含引用计数指针的数据结构 将序列化指针内部值的副本,每次 指针在数据结构中被引用。序列化将 不要尝试删除这些重复数据

反序列化包含引用计数指针的数据结构 不会尝试删除对同一数据的重复引用。每一个 反序列化指针将以强计数1结束


我只关心锈蚀侧的
Rc
结构,因此我认为我需要两个结构。

启用serde板条箱的
Rc
功能,serde将为
Rc
Arc
实现
序列化和
反序列化。然后,您可以在
ArrayRc
DataRc
结构上导出这两个特性


对于反序列化,它将为反序列化的每个值创建一个新的
Rc
,强计数为1,这听起来像是您想要的。

请在回答新问题之前搜索回答新问题的现有问题。已更新我的问题。我相信启用rc功能不是我想要的。请更清楚地解释为什么复制()无效。具体来说,不清楚“它序列化和反序列化实际的
rc
Arc
struct”是什么意思。它序列化和反序列化
rc
struct,即,包括引用计数。我只希望内存由
Rc
struct管理,包括引用计数-它没有。你可以。我认为文件把我弄糊涂了,并问了一个问题,但我同意这个问题确实是重复的。