Expand description
Async JSON stream reader for selective parsing of large payloads.
This crate exposes the same token-based API used in Extract’s connectors, enabling efficient streaming reads without deserializing full documents.
§Quick start
use asyncjsonstream::AsyncJsonStreamReader;
use std::io::Cursor;
#[tokio::main]
async fn main() -> Result<(), asyncjsonstream::AsyncJsonStreamReaderError> {
let data = r#"{"status":"success","results":[{"id":1},{"id":2}]}"#;
let mut reader = AsyncJsonStreamReader::new(Cursor::new(data.as_bytes().to_vec()));
while let Some(key) = reader.next_object_entry().await? {
match key.as_str() {
"status" => {
let status = reader.read_string().await?;
println!("status={status}");
}
"results" => {
while reader.start_array_item().await? {
let obj = reader.deserialize_object().await?;
println!("id={}", obj["id"]);
}
}
_ => {}
}
}
Ok(())
}Structs§
- Async
Json Stream Reader - The main async JSON stream reader for selective parsing.
Enums§
- Async
Json Stream Reader Error - Error types that can occur during streaming JSON parsing.
- Json
Token - Token types emitted by
next_token.