1个不稳定版本

0.1.0 2019年1月22日

#11 in #json-stream

MIT许可证

47KB
1K SLoC

qjsonrs

这是一个JSON解析器的Rust实现。

警告

这个crate仍然非常不稳定,在0.x.y版本中可能会出现许多破坏性更改。

动机

流式标记化处理大JSON负载,可以在不将整个JSON对象加载到内存的情况下进行处理。

迭代器接口。

这个crate产生的JsonTokens流无法完全提供迭代器接口。原因是:产生的JsonTokens引用了流内部的缓冲区,因此保持了对流的一个引用。

此外,迭代器返回结果,以启用报告IO或JSON编码错误。

示例

use qjsonrs::{
    JsonStream,
    JsonToken::JsBoolean
}

let mut stream = JsonStream::from_read(file)?;
while Some(t) = stream.next()? {
  match t {
    JsonToken::JsBoolean(b) => { println!("Got JSON boolean: {:?}", b) },
    o => { println!("Got other JSON token boolean: {:?}", o) },
  }
}
println!("Done reading stream.");

依赖项

~560–780KB
~10K SLoC