gpt4 book ai didi

json - 如何在没有中间结构的情况下有效地将 JSON 的一部分提取为 Vec?

转载 作者:行者123 更新时间:2023-11-29 08:31:07 26 4
gpt4 key购买 nike

我有 JSON 内容,其中嵌套很深,有一组我想提取的数字。我不想创建中间结构,所以我尝试了以下操作:

... get f
let json = serde_json::from_reader::<_, serde_json::Value>(f)?;
let xs: Vec<(f64, f64)> = serde_json::from_value(json["subtree"][0])?;

这提示

11 | serde_json::from_value(json["subtree"][0])?;
| ^^^^^^^^^^^^^^^^^^^^^ move occurs because value has type `serde_json::value::Value`, which does not implement the `Copy` trait

如果我克隆,它工作正常:

let xs: Vec<(f64, f64)> = serde_json::from_value(json["subtree"][0].clone())?;

但这似乎是不必要的。我不会使用结构的其余部分。如何在无需创建中间结构且无需克隆的情况下实现这一目标?

最佳答案

哦,错过了非常明显的地方。

... get f
let mut json = serde_json::from_reader::<_, serde_json::Value>(f)?;
let xs: Vec<(f64, f64)> = serde_json::from_value(json["subtree"][0].take())?;

关于json - 如何在没有中间结构的情况下有效地将 JSON 的一部分提取为 Vec?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57611811/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com