我有一些从Web服务返回的JSON数据.JSON是一个顶级数组:
[
{
"data": "value1"
},
{
"data": "value2"
},
{
"data": "value3"
}
]
Run Code Online (Sandbox Code Playgroud)
用serde_derive做struct是我能可以反序列化包含在阵列中的数据,但是,我无法得到SERDE反序列化的顶级阵列.
我错过了什么,或Serde不会反序列化顶级数组?
我想从 Rust 中的文件/读取器读取多个 JSON 对象,一次一个。不幸的是serde_json::from_reader(...)只读取到文件结束;似乎没有任何方法可以使用它来读取单个对象或懒惰地迭代对象。
有没有办法做到这一点?使用serde_json将是理想的,但如果有不同的库,我愿意使用它。
目前我将每个对象放在单独的行上并单独解析它们,但我真的不想这样做。
use serde_json;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let stdin = std::io::stdin();
let stdin = stdin.lock();
for item in serde_json::iter_from_reader(stdin) {
println!("Got {:?}", item);
}
Ok(())
}
Run Code Online (Sandbox Code Playgroud)
{"foo": ["bar", "baz"]} 1 2 [] 4 5 6
Run Code Online (Sandbox Code Playgroud)
{"foo": ["bar", "baz"]} 1 2 [] 4 5 6
Run Code Online (Sandbox Code Playgroud)