Я бы хотел прочитать несколько объектов JSON из файла / программы чтения в Rust, по одному за раз. К сожалению, serde_json::from_reader(...)
просто читает до конца файла; кажется, нет никакого способа использовать его для чтения одного объекта или ленивого перебора объектов.
Есть ли способ сделать это? Использование serde_json
было бы идеальным, но если бы была другая библиотека, я бы хотел использовать это вместо.
В данный момент я помещаю каждый объект в отдельную строку и анализирую их по отдельности, но я бы действительно предпочел не делать этого.
Пример использования
main.rs
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(())
}
in.txt
{"foo": ["bar", "baz"]} 1 2 [] 4 5 6
пример сеанса
Got Object({"foo": Array([String("bar"), String("baz")])})
Got Number(1)
Got Number(2)
Got Array([])
Got Number(4)
Got Number(5)
Got Number(6)